
On 8/16/06, Bulat Ziganshin
you deleted context of my note, where you wrote something opposite to "All Monads are Functors":
Not necessarily. If A doesn't have any Functor declarations, it could be considered just a Monad without a Functor.
is it possible to declare Monad Foo without Functor Foo with the above class definition?
You misunderstood what I meant. "Monad without a Functor" means Monad
*declaration* without an explicit Functor *declaration*, i.e. using
the defaults. The problem happens when a definition implicitly uses
the defaults and then an explicit Functor comes into scope via import.
The current proposal to require people to write "instance Functor"
isn't so pretty as the hierarchy becomes more fine-grained:
instance Monad [] where
instance Functor
instance PointedFunctor
instance Applicative
...
--
Taral