From 496ffce05880fd84f2507607f3f23959c04c38ca Mon Sep 17 00:00:00 2001 From: Peter Wicks Stringfield Date: Wed, 30 Dec 2020 15:55:43 -0600 Subject: [PATCH 1/3] Delete test/testdata/wrapper/*. This is all dead code. It was brought over from haskell ide engine, but we don't use it. Note: We are deleting test/testdata/wrapper We are NOT deleting test/wrapper/testdata wrapper/testdata contains live testdata, which is being used to test that haskell-language-server-wrapper can load the appropriate version of haskell-language-server based on the environment that it is running in. --- test/testdata/wrapper/8.8.1/Setup.hs | 2 -- test/testdata/wrapper/8.8.1/cabal1.cabal | 25 ------------------- test/testdata/wrapper/8.8.1/src/Foo/Bar.hs | 3 --- test/testdata/wrapper/8.8.1/src/main.hs | 7 ------ test/testdata/wrapper/ghc/dummy | 1 - test/testdata/wrapper/lts-14.18/Setup.hs | 2 -- test/testdata/wrapper/lts-14.18/cabal1.cabal | 25 ------------------- .../testdata/wrapper/lts-14.18/src/Foo/Bar.hs | 3 --- test/testdata/wrapper/lts-14.18/src/main.hs | 7 ------ 9 files changed, 75 deletions(-) delete mode 100644 test/testdata/wrapper/8.8.1/Setup.hs delete mode 100644 test/testdata/wrapper/8.8.1/cabal1.cabal delete mode 100644 test/testdata/wrapper/8.8.1/src/Foo/Bar.hs delete mode 100644 test/testdata/wrapper/8.8.1/src/main.hs delete mode 100644 test/testdata/wrapper/ghc/dummy delete mode 100644 test/testdata/wrapper/lts-14.18/Setup.hs delete mode 100644 test/testdata/wrapper/lts-14.18/cabal1.cabal delete mode 100644 test/testdata/wrapper/lts-14.18/src/Foo/Bar.hs delete mode 100644 test/testdata/wrapper/lts-14.18/src/main.hs diff --git a/test/testdata/wrapper/8.8.1/Setup.hs b/test/testdata/wrapper/8.8.1/Setup.hs deleted file mode 100644 index 9a994af677..0000000000 --- a/test/testdata/wrapper/8.8.1/Setup.hs +++ /dev/null @@ -1,2 +0,0 @@ -import Distribution.Simple -main = defaultMain diff --git a/test/testdata/wrapper/8.8.1/cabal1.cabal b/test/testdata/wrapper/8.8.1/cabal1.cabal deleted file mode 100644 index f599b3df0c..0000000000 --- a/test/testdata/wrapper/8.8.1/cabal1.cabal +++ /dev/null @@ -1,25 +0,0 @@ --- Initial cabal1.cabal generated by cabal init. For further --- documentation, see http://haskell.org/cabal/users-guide/ - -name: cabal1 -version: 0.1.0.0 --- synopsis: --- description: -license: PublicDomain --- license-file: LICENSE -author: Alan Zimmerman -maintainer: alan.zimm@gmail.com --- copyright: --- category: -build-type: Simple --- extra-source-files: --- cabal-helper for cabal 2.2/GHC 8.4 needs a cabal version >= 2 -cabal-version: >=2.0 - -executable cabal1 - main-is: main.hs - -- other-modules: - -- other-extensions: - build-depends: base >=4.6 && <5 - hs-source-dirs: src - default-language: Haskell2010 \ No newline at end of file diff --git a/test/testdata/wrapper/8.8.1/src/Foo/Bar.hs b/test/testdata/wrapper/8.8.1/src/Foo/Bar.hs deleted file mode 100644 index ceb08691b1..0000000000 --- a/test/testdata/wrapper/8.8.1/src/Foo/Bar.hs +++ /dev/null @@ -1,3 +0,0 @@ -module Foo.Bar where - -baz = 6 diff --git a/test/testdata/wrapper/8.8.1/src/main.hs b/test/testdata/wrapper/8.8.1/src/main.hs deleted file mode 100644 index 839d104293..0000000000 --- a/test/testdata/wrapper/8.8.1/src/main.hs +++ /dev/null @@ -1,7 +0,0 @@ --- | Testing that HaRe can find source files from a cabal file - -import qualified Foo.Bar as B - -main = putStrLn "foo" - -baz = 3 + B.baz diff --git a/test/testdata/wrapper/ghc/dummy b/test/testdata/wrapper/ghc/dummy deleted file mode 100644 index 9c7ffe8ee9..0000000000 --- a/test/testdata/wrapper/ghc/dummy +++ /dev/null @@ -1 +0,0 @@ -Needed or else git won't track the directory \ No newline at end of file diff --git a/test/testdata/wrapper/lts-14.18/Setup.hs b/test/testdata/wrapper/lts-14.18/Setup.hs deleted file mode 100644 index 9a994af677..0000000000 --- a/test/testdata/wrapper/lts-14.18/Setup.hs +++ /dev/null @@ -1,2 +0,0 @@ -import Distribution.Simple -main = defaultMain diff --git a/test/testdata/wrapper/lts-14.18/cabal1.cabal b/test/testdata/wrapper/lts-14.18/cabal1.cabal deleted file mode 100644 index f599b3df0c..0000000000 --- a/test/testdata/wrapper/lts-14.18/cabal1.cabal +++ /dev/null @@ -1,25 +0,0 @@ --- Initial cabal1.cabal generated by cabal init. For further --- documentation, see http://haskell.org/cabal/users-guide/ - -name: cabal1 -version: 0.1.0.0 --- synopsis: --- description: -license: PublicDomain --- license-file: LICENSE -author: Alan Zimmerman -maintainer: alan.zimm@gmail.com --- copyright: --- category: -build-type: Simple --- extra-source-files: --- cabal-helper for cabal 2.2/GHC 8.4 needs a cabal version >= 2 -cabal-version: >=2.0 - -executable cabal1 - main-is: main.hs - -- other-modules: - -- other-extensions: - build-depends: base >=4.6 && <5 - hs-source-dirs: src - default-language: Haskell2010 \ No newline at end of file diff --git a/test/testdata/wrapper/lts-14.18/src/Foo/Bar.hs b/test/testdata/wrapper/lts-14.18/src/Foo/Bar.hs deleted file mode 100644 index ceb08691b1..0000000000 --- a/test/testdata/wrapper/lts-14.18/src/Foo/Bar.hs +++ /dev/null @@ -1,3 +0,0 @@ -module Foo.Bar where - -baz = 6 diff --git a/test/testdata/wrapper/lts-14.18/src/main.hs b/test/testdata/wrapper/lts-14.18/src/main.hs deleted file mode 100644 index 839d104293..0000000000 --- a/test/testdata/wrapper/lts-14.18/src/main.hs +++ /dev/null @@ -1,7 +0,0 @@ --- | Testing that HaRe can find source files from a cabal file - -import qualified Foo.Bar as B - -main = putStrLn "foo" - -baz = 3 + B.baz From efe8dac42a17e635084ce484da9cd987bdd8914c Mon Sep 17 00:00:00 2001 From: Peter Wicks Stringfield Date: Wed, 30 Dec 2020 15:48:24 -0600 Subject: [PATCH 2/3] Delete HaRe test files. These are dead code, they are very simple so they aren't likely to be useful when writing new tests, and they have "HaRe" in the name even though HaRe is gone, which adds mental burden. --- test/testdata/HaReCase.hs | 10 ---------- test/testdata/HaReDemote.hs | 6 ------ test/testdata/HaReGA1/HaReGA1.cabal | 10 ---------- test/testdata/HaReGA1/HaReGA1.hs | 11 ----------- test/testdata/HaReGA1/cabal.project | 1 - test/testdata/HaReLift.hs | 3 --- test/testdata/HaReMoveDef.hs | 14 -------------- test/testdata/HaReRename.hs | 6 ------ test/testdata/testdata.cabal | 27 --------------------------- 9 files changed, 88 deletions(-) delete mode 100644 test/testdata/HaReCase.hs delete mode 100644 test/testdata/HaReDemote.hs delete mode 100644 test/testdata/HaReGA1/HaReGA1.cabal delete mode 100644 test/testdata/HaReGA1/HaReGA1.hs delete mode 100644 test/testdata/HaReGA1/cabal.project delete mode 100644 test/testdata/HaReLift.hs delete mode 100644 test/testdata/HaReMoveDef.hs delete mode 100644 test/testdata/HaReRename.hs diff --git a/test/testdata/HaReCase.hs b/test/testdata/HaReCase.hs deleted file mode 100644 index 259cd8a597..0000000000 --- a/test/testdata/HaReCase.hs +++ /dev/null @@ -1,10 +0,0 @@ - -main = putStrLn "hello" - -foo :: Int -> Int -foo x = if odd x - then - x + 3 - else - x - diff --git a/test/testdata/HaReDemote.hs b/test/testdata/HaReDemote.hs deleted file mode 100644 index 0b6b8a85d7..0000000000 --- a/test/testdata/HaReDemote.hs +++ /dev/null @@ -1,6 +0,0 @@ - -main = putStrLn "hello" - -foo x = y + 3 - -y = 7 diff --git a/test/testdata/HaReGA1/HaReGA1.cabal b/test/testdata/HaReGA1/HaReGA1.cabal deleted file mode 100644 index add265b777..0000000000 --- a/test/testdata/HaReGA1/HaReGA1.cabal +++ /dev/null @@ -1,10 +0,0 @@ -name: HaReGA1 -version: 0.1.0.0 -cabal-version: >=2.0 -build-type: Simple - -executable harega - build-depends: base, parsec - main-is: HaReGA1.hs - default-language: Haskell2010 - diff --git a/test/testdata/HaReGA1/HaReGA1.hs b/test/testdata/HaReGA1/HaReGA1.hs deleted file mode 100644 index 4a2b2a57c6..0000000000 --- a/test/testdata/HaReGA1/HaReGA1.hs +++ /dev/null @@ -1,11 +0,0 @@ -module Main where -import Text.ParserCombinators.Parsec - -parseStr :: CharParser () String -parseStr = do - char '"' - str <- many1 (noneOf "\"") - char '"' - return str - -main = putStrLn "hello" diff --git a/test/testdata/HaReGA1/cabal.project b/test/testdata/HaReGA1/cabal.project deleted file mode 100644 index e6fdbadb43..0000000000 --- a/test/testdata/HaReGA1/cabal.project +++ /dev/null @@ -1 +0,0 @@ -packages: . diff --git a/test/testdata/HaReLift.hs b/test/testdata/HaReLift.hs deleted file mode 100644 index bc22926de8..0000000000 --- a/test/testdata/HaReLift.hs +++ /dev/null @@ -1,3 +0,0 @@ -module HaReLift where -foo = bar - where bar = "hello" \ No newline at end of file diff --git a/test/testdata/HaReMoveDef.hs b/test/testdata/HaReMoveDef.hs deleted file mode 100644 index f60053a6b1..0000000000 --- a/test/testdata/HaReMoveDef.hs +++ /dev/null @@ -1,14 +0,0 @@ - -main = putStrLn "hello" - -lifting x = x + y - where - y = 4 - -liftToTop x = x + y - where - y = z + 4 - where - z = 7 - - diff --git a/test/testdata/HaReRename.hs b/test/testdata/HaReRename.hs deleted file mode 100644 index 8183da35e7..0000000000 --- a/test/testdata/HaReRename.hs +++ /dev/null @@ -1,6 +0,0 @@ - -main = putStrLn "hello" - -foo :: Int -> Int -foo x = x + 3 - diff --git a/test/testdata/testdata.cabal b/test/testdata/testdata.cabal index 76b2bdb95f..887dabe22e 100644 --- a/test/testdata/testdata.cabal +++ b/test/testdata/testdata.cabal @@ -18,38 +18,11 @@ executable symbols main-is: Symbols.hs default-language: Haskell2010 - executable hlintpragma build-depends: base main-is: HlintPragma.hs default-language: Haskell2010 -executable harecase - build-depends: base - main-is: HaReCase.hs - default-language: Haskell2010 - -executable haredemote - build-depends: base - main-is: HaReDemote.hs - default-language: Haskell2010 - -executable haremovedef - build-depends: base - main-is: HaReMoveDef.hs - default-language: Haskell2010 - -executable harerename - build-depends: base - main-is: HaReRename.hs - default-language: Haskell2010 - -executable haregenapplicative - build-depends: base - , parsec - main-is: HaReGA1.hs - default-language: Haskell2010 - executable functests build-depends: base main-is: FuncTest.hs From 95c4e6ec0ddc71efef1c7f2305fc301fb8a520d2 Mon Sep 17 00:00:00 2001 From: Peter Wicks Stringfield Date: Wed, 30 Dec 2020 17:13:09 -0600 Subject: [PATCH 3/3] Delete unused test datafiles. These all came over from Haskell IDE Engine, and we aren't using them. So lets clean up by deleting them. --- test/testdata/ApplyRefactError.hs | 2 - test/testdata/CodeActionImportBrittany.hs | 3 -- test/testdata/CodeActionImportList.hs | 6 --- .../testdata/CodeActionImportListElaborate.hs | 9 ----- test/testdata/FileWithWarning.hs | 7 ---- test/testdata/GhcModCaseSplit.hs | 5 --- test/testdata/HlintNoRefactorings.hs | 4 -- test/testdata/HlintParseFail.hs | 13 ------- test/testdata/HlintPragma.hs | 4 -- test/testdata/Types.hs | 33 ----------------- test/testdata/testdata.cabal | 10 ----- test/testdata/typedHoleDiag.txt | 26 ------------- test/testdata/typedHoleDiag2.txt | 17 --------- test/testdata/typedHoleDiag3.txt | 37 ------------------- 14 files changed, 176 deletions(-) delete mode 100644 test/testdata/ApplyRefactError.hs delete mode 100644 test/testdata/CodeActionImportBrittany.hs delete mode 100644 test/testdata/CodeActionImportList.hs delete mode 100644 test/testdata/CodeActionImportListElaborate.hs delete mode 100644 test/testdata/FileWithWarning.hs delete mode 100644 test/testdata/GhcModCaseSplit.hs delete mode 100644 test/testdata/HlintNoRefactorings.hs delete mode 100644 test/testdata/HlintParseFail.hs delete mode 100644 test/testdata/HlintPragma.hs delete mode 100644 test/testdata/Types.hs delete mode 100644 test/testdata/typedHoleDiag.txt delete mode 100644 test/testdata/typedHoleDiag2.txt delete mode 100644 test/testdata/typedHoleDiag3.txt diff --git a/test/testdata/ApplyRefactError.hs b/test/testdata/ApplyRefactError.hs deleted file mode 100644 index 89ad34d323..0000000000 --- a/test/testdata/ApplyRefactError.hs +++ /dev/null @@ -1,2 +0,0 @@ -foo :: forall a. (a -> a) -> a -> a -foo f x = f $ x diff --git a/test/testdata/CodeActionImportBrittany.hs b/test/testdata/CodeActionImportBrittany.hs deleted file mode 100644 index af9cb0d2d4..0000000000 --- a/test/testdata/CodeActionImportBrittany.hs +++ /dev/null @@ -1,3 +0,0 @@ -import qualified Data.Maybe -main :: IO () -main = when True $ putStrLn "hello" \ No newline at end of file diff --git a/test/testdata/CodeActionImportList.hs b/test/testdata/CodeActionImportList.hs deleted file mode 100644 index 1a0d3ee3e8..0000000000 --- a/test/testdata/CodeActionImportList.hs +++ /dev/null @@ -1,6 +0,0 @@ --- | Main entry point to the program -main :: IO () -main = - when True - $ hPutStrLn stdout - $ fromMaybe "Good night, World!" (Just "Hello, World!") \ No newline at end of file diff --git a/test/testdata/CodeActionImportListElaborate.hs b/test/testdata/CodeActionImportListElaborate.hs deleted file mode 100644 index 63f9056982..0000000000 --- a/test/testdata/CodeActionImportListElaborate.hs +++ /dev/null @@ -1,9 +0,0 @@ -{-# LANGUAGE NoImplicitPrelude #-} -import System.IO (IO) -import Data.List (find, head, last, tail, init, union, (\\), null, length, cons, uncons) --- | Main entry point to the program -main :: IO () -main = - when True - $ hPutStrLn stderr - $ fromMaybe "Good night, World!" (Just "Hello, World!") \ No newline at end of file diff --git a/test/testdata/FileWithWarning.hs b/test/testdata/FileWithWarning.hs deleted file mode 100644 index 226e659d9b..0000000000 --- a/test/testdata/FileWithWarning.hs +++ /dev/null @@ -1,7 +0,0 @@ - -main = putStrLn "hello" - -foo = x - -bar x = do - return (3 + x) diff --git a/test/testdata/GhcModCaseSplit.hs b/test/testdata/GhcModCaseSplit.hs deleted file mode 100644 index ad1ee0dd33..0000000000 --- a/test/testdata/GhcModCaseSplit.hs +++ /dev/null @@ -1,5 +0,0 @@ - -main = putStrLn "hello" - -foo :: Maybe Int -> () -foo x = () diff --git a/test/testdata/HlintNoRefactorings.hs b/test/testdata/HlintNoRefactorings.hs deleted file mode 100644 index 6721feb768..0000000000 --- a/test/testdata/HlintNoRefactorings.hs +++ /dev/null @@ -1,4 +0,0 @@ -main = putStrLn "hello" - -foo x = putStrLn x -bar y = id 42 \ No newline at end of file diff --git a/test/testdata/HlintParseFail.hs b/test/testdata/HlintParseFail.hs deleted file mode 100644 index 6730e7e601..0000000000 --- a/test/testdata/HlintParseFail.hs +++ /dev/null @@ -1,13 +0,0 @@ -{-# LANGUAGE TypeFamilies #-} -{-# LANGUAGE GADTs #-} -{-# LANGUAGE TypeOperators #-} -{-# LANGUAGE DataKinds #-} -{-# LANGUAGE TypeInType #-} -module Test where - -import Data.Singletons.Prelude -import Data.Singletons.TypeLits -import Data.Type.Equality ((:~:) (..), (:~~:) (..)) - -data instance Sing (z :: (a :~: b)) where - SRefl :: Sing Refl + diff --git a/test/testdata/HlintPragma.hs b/test/testdata/HlintPragma.hs deleted file mode 100644 index d308479ed1..0000000000 --- a/test/testdata/HlintPragma.hs +++ /dev/null @@ -1,4 +0,0 @@ -{-# ANN module ("hlint: ignore Redundant do" :: String) #-} - -main = do - putStrLn ("hello") diff --git a/test/testdata/Types.hs b/test/testdata/Types.hs deleted file mode 100644 index 8d6b4338bb..0000000000 --- a/test/testdata/Types.hs +++ /dev/null @@ -1,33 +0,0 @@ -module Types where - -import Control.Applicative - -foo :: Maybe Int -> Int -foo (Just x) = x -foo Nothing = 0 - -bar :: Maybe Int -> Int -bar x = case x of - Just y -> y + 1 - Nothing -> 0 - -maybeMonad :: Maybe Int -> Maybe Int -maybeMonad x = do - y <- x - let z = return (y + 10) - b <- z - return (b + y) - -funcTest :: (a -> a) -> a -> a -funcTest f a = f a - -compTest :: (b -> c) -> (a -> b) -> a -> c -compTest f g = let h = f . g in h - -monadStuff :: (a -> b) -> IO a -> IO b -monadStuff f action = f <$> action - -data Test - = TestC Int - | TestM String - deriving (Show, Eq, Ord) \ No newline at end of file diff --git a/test/testdata/testdata.cabal b/test/testdata/testdata.cabal index 887dabe22e..54a48a5403 100644 --- a/test/testdata/testdata.cabal +++ b/test/testdata/testdata.cabal @@ -18,11 +18,6 @@ executable symbols main-is: Symbols.hs default-language: Haskell2010 -executable hlintpragma - build-depends: base - main-is: HlintPragma.hs - default-language: Haskell2010 - executable functests build-depends: base main-is: FuncTest.hs @@ -33,8 +28,3 @@ executable evens main-is: Evens.hs hs-source-dirs: liquid default-language: Haskell2010 - -executable filewithwarning - build-depends: base - main-is: FileWithWarning.hs - default-language: Haskell2010 diff --git a/test/testdata/typedHoleDiag.txt b/test/testdata/typedHoleDiag.txt deleted file mode 100644 index 3ca81f900c..0000000000 --- a/test/testdata/typedHoleDiag.txt +++ /dev/null @@ -1,26 +0,0 @@ -• Found hole: _ :: Maybe T.Text -• In the expression: _ - In an equation for ‘extractHoles’: - extractHoles diag - | "Found hole:" `T.isInfixOf` diag = _ - | otherwise = Nothing -• Relevant bindings include - diag :: T.Text - (bound at /private/var/folders/zh/fqwj2cq95b7gbzs49fsq5drw0000gn/T/ghc-mod48138/GhcMod48135-416.hs:482:14) - extractHoles :: T.Text -> Maybe T.Text - (bound at /private/var/folders/zh/fqwj2cq95b7gbzs49fsq5drw0000gn/T/ghc-mod48138/GhcMod48135-416.hs:482:1) - Valid substitutions include - Nothing :: forall a. Maybe a - (imported from ‘Data.Maybe’ at /private/var/folders/zh/fqwj2cq95b7gbzs49fsq5drw0000gn/T/ghc-mod48138/GhcMod48135-416.hs:24:1-27 - (and originally defined in ‘GHC.Base’)) - mempty :: forall a. Monoid a => a - (imported from ‘Prelude’ at /private/var/folders/zh/fqwj2cq95b7gbzs49fsq5drw0000gn/T/ghc-mod48138/GhcMod48135-416.hs:8:8-39 - (and originally defined in ‘GHC.Base’)) - undefined :: forall (a :: TYPE r). - GHC.Stack.Types.HasCallStack => - a - (imported from ‘Prelude’ at /private/var/folders/zh/fqwj2cq95b7gbzs49fsq5drw0000gn/T/ghc-mod48138/GhcMod48135-416.hs:8:8-39 - (and originally defined in ‘GHC.Err’)) - GM.mzero :: forall (m :: * -> *). GM.MonadPlus m => forall a. m a - (imported qualified from ‘GhcMod.Error’ at /private/var/folders/zh/fqwj2cq95b7gbzs49fsq5drw0000gn/T/ghc-mod48138/GhcMod48135-416.hs:37:1-56 - (and originally defined in ‘GHC.Base’)) \ No newline at end of file diff --git a/test/testdata/typedHoleDiag2.txt b/test/testdata/typedHoleDiag2.txt deleted file mode 100644 index 032d18bacc..0000000000 --- a/test/testdata/typedHoleDiag2.txt +++ /dev/null @@ -1,17 +0,0 @@ -• Found hole: _ :: A -• In the expression: _ - In an equation for ‘foo2’: - foo2 x - = _ - where - stuff (A a) = A (a + 1) -• Relevant bindings include - stuff :: A -> A (bound at test/testdata/TypedHoles2.hs:6:5) - x :: [A] (bound at test/testdata/TypedHoles2.hs:4:6) - foo2 :: [A] -> A (bound at test/testdata/TypedHoles2.hs:4:1) - Valid substitutions include - undefined :: forall (a :: TYPE r). - GHC.Stack.Types.HasCallStack => - a - (imported from ‘Prelude’ at test/testdata/TypedHoles2.hs:1:8-18 - (and originally defined in ‘GHC.Err’)) diff --git a/test/testdata/typedHoleDiag3.txt b/test/testdata/typedHoleDiag3.txt deleted file mode 100644 index ffe520ffaa..0000000000 --- a/test/testdata/typedHoleDiag3.txt +++ /dev/null @@ -1,37 +0,0 @@ -• Found hole: _ :: t -> FilePath - Where: ‘t’ is a rigid type variable bound by - the inferred type of - lintDockerfile :: [IgnoreRule] - -> t - -> IO (Either Language.Docker.Parser.Error [Rules.RuleCheck]) - at app/Main.hs:(229,5)-(235,47) -• In the expression: _ - In the first argument of ‘Docker.parseFile’, namely - ‘(_ dockerFile)’ - In a stmt of a 'do' block: ast <- Docker.parseFile (_ dockerFile) -• Relevant bindings include - processedFile :: Either Language.Docker.Parser.Error Dockerfile - -> Either Language.Docker.Parser.Error [Rules.RuleCheck] - (bound at app/Main.hs:233:9) - processRules :: Dockerfile -> [Rules.RuleCheck] - (bound at app/Main.hs:234:9) - ignoredRules :: Rules.RuleCheck -> Bool - (bound at app/Main.hs:235:9) - dockerFile :: t (bound at app/Main.hs:229:32) - ignoreRules :: [IgnoreRule] (bound at app/Main.hs:229:20) - lintDockerfile :: [IgnoreRule] - -> t -> IO (Either Language.Docker.Parser.Error [Rules.RuleCheck]) - (bound at app/Main.hs:229:5) - (Some bindings suppressed; use -fmax-relevant-binds=N or -fno-max-relevant-binds) - Valid substitutions include - mempty :: forall a. Monoid a => a - (imported from ‘Prelude’ at app/Main.hs:5:8-11 - (and originally defined in ‘GHC.Base’)) - undefined :: forall (a :: TYPE r). - GHC.Stack.Types.HasCallStack => - a - (imported from ‘Prelude’ at app/Main.hs:5:8-11 - (and originally defined in ‘GHC.Err’)) - idm :: forall m. Monoid m => m - (imported from ‘Options.Applicative’ at app/Main.hs:21:1-46 - (and originally defined in ‘Options.Applicative.Builder’))