Resolving dependencies... Configuring mtl-2.2.1... Configuring syb-0.6... Building mtl-2.2.1... Building syb-0.6... Configuring text-1.2.2.1... Installed syb-0.6 Installed mtl-2.2.1 Configuring regex-base-0.93.2... Building text-1.2.2.1... Building regex-base-0.93.2... Installed regex-base-0.93.2 Configuring regex-posix-0.95.2... Building regex-posix-0.95.2... Installed regex-posix-0.95.2 Installed text-1.2.2.1 Configuring parsec-3.1.11... Building parsec-3.1.11... Installed parsec-3.1.11 Configuring preprocessor-tools-1.0.1... Building preprocessor-tools-1.0.1... Installed preprocessor-tools-1.0.1 Configuring interpol-0.1.0... Building interpol-0.1.0... Failed to install interpol-0.1.0 Build log ( /home/builder/.cabal/logs/interpol-0.1.0.log ): cabal: Entering directory '/tmp/cabal-tmp-29642/interpol-0.1.0' Configuring interpol-0.1.0... Building interpol-0.1.0... Preprocessing executable 'interpol' for interpol-0.1.0... [1 of 1] Compiling Main ( Main.hs, dist/build/interpol/interpol-tmp/Main.o ) Main.hs:17:38: error: • Couldn't match type ‘[Ast]’ with ‘IO [Ast]’ Expected type: [Ast] -> IO [Ast] Actual type: IO [Ast] -> IO [Ast] • In the ‘transformer’ field of a record In the expression: mempty {transformer = everywhere (mkT trans)} In an equation for ‘interpolExt’: interpolExt = mempty {transformer = everywhere (mkT trans)} where trans :: Ast -> Ast trans (Single {item = tok@(Token {tag = StringLit, val = s})}) = let ... in Single (tok {val = s'}) trans ast = ast ti = tail . init identRE = "\\{[A-z_][A-z0-9_]*}" .... cabal: Leaving directory '/tmp/cabal-tmp-29642/interpol-0.1.0' cabal: Error: some packages failed to install: interpol-0.1.0 failed during the building phase. The exception was: ExitFailure 1