On Fri, Mar 26, 2010 at 8:59 PM, Ivan Lazar Miljenovic <[email protected]> wrote: > zaxis <[email protected]> writes: >> 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 >> > > Some definitions and exports got changed, so in 6.12 the (-> a) Monad > instance is exported whereas in 6.10 it isn't.
What? From where? I thought the whole reason the Monad ((->) a) instance was in Control.Monad.Instances (instead of Prelude) was to retain compatibility with the library report. -- Dave Menendez <[email protected]> <http://www.eyrie.org/~zednenem/> _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
