2008/8/29 Maurício <briqueabraque at yahoo.com>: > x :: Prelude.Monad a > y :: Prelude.Monad b > foo :: b -> Prelude.Monad c Monad is not a type, it is a type class, so you probably mean: x :: Monad m => m a y :: Monad m => m b foo :: Monad m => b -> m c With the further understanding that all three `m's must be the same. -- -David