
Hi, I'm finding that some data types which use Applicative to instantiate the Num class, give responses I wasn't expecting at the ghci prompt. A simple example is list: import Control.Applicative instance (Num a) => Num [a] where as + bs = (+) <$> as <*> bs (*) = undefined; abs = undefined signum = undefined; fromInteger = undefined f1 = let op = (+) in [1,2,3] `op` [1,1,1] f2 = let op = (+) in op [1,2,3] [1,1,1] Functions f1 and f2 give no problems at the ghci prompt. However if I instead type the body of either interactively, I get an error: *Main> let op = (+) *Main> [1,2,3] `op` [1,1,1] <interactive>:1:0: Couldn't match expected type `Integer' against inferred type `[a]' In the first argument of `op', namely `[1, 2, 3]' In the expression: [1, 2, 3] `op` [1, 1, 1] In the definition of `it': it = [1, 2, 3] `op` [1, 1, 1] I get the same error message with op [1,2,3] [1,1,1]. Any thoughts? Thanks, Paul