On Friday 24 December 2010 22:47:55, Aaron Gray wrote: > On 24 December 2010 18:24, Henning Thielemann > <lemm...@henning-thielemann.de > > > wrote: > > > > > > On Fri, 24 Dec 2010, Aaron Gray wrote: > > > > The compiler is requesting an instance declaration for Show :- > > > >> expr-eval.hs:334:23: > >> No instance for (Show ([(String, Int)] -> Int)) > >> arising from a use of `print' at expr-eval.hs:334:23-27 > >> Possible fix: > >> add an instance declaration for (Show ([(String, Int)] -> > >> Int)) In the first argument of `(.)', namely `print' > >> In the second argument of `(>>=)', namely `print . calc . > >> lexer' In the expression: getContents >>= print . calc . lexer > > > > ... maybe 'calc' needs a further argument? > > I have attached what I have typed in so far.
Well, *ExprEval> :t calc calc :: [Token] -> [(String, Int)] -> Int calc needs an environment (a dictionary of let-bound names), which you have to provide. main = print . flip calc [] . lexer works fine. > > Aaron _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe