On Fri, Mar 26, 2010 at 8:20 PM, zaxis <[email protected]> wrote: > > In 6.12.1 under archlinux >>let f x y z = x + y + z >> :t f > f :: (Num a) => a -> a -> a -> a > >> :t (>>=) . f > (>>=) . f :: (Num a) => a -> ((a -> a) -> a -> b) -> a -> b >> ((>>=) . f) 1 (\f x -> f x) 2 > 5 > > In 6.10.4_1 under freebsd >> let f x y z = x + y + z > *Money> :t f > f :: (Num a) => a -> a -> a -> a > >> :t (>>=) . f > (>>=) . f :: (Monad ((->) a), Num a) => a -> ((a -> a) -> a -> b) -> a -> b >> ((>>=) . f) 1 (\f x -> f x) 2 > > <interactive>:1:1: > No instance for (Monad ((->) a)) > arising from a use of `>>=' at <interactive>:1:1-5 > Possible fix: add an instance declaration for (Monad ((->) a)) > In the first argument of `(.)', namely `(>>=)' > In the expression: ((>>=) . f) 1 (\ f x -> f x) 2 > In the definition of `it': it = ((>>=) . f) 1 (\ f x -> f x) 2
It looks like you have the instance Monad ((->) a) loaded in 6.12, but not in 6.10.4. In don't know of any changes regarding that instance in 6.12, but instances stick around in ghci even after their module is unloaded, so you might have (indirectly) loaded Control.Monad.Instances at some point in your 6.12 session. Try starting a fresh ghci 6.12 and see what that does. -- Dave Menendez <[email protected]> <http://www.eyrie.org/~zednenem/> _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
