Personal tools

Talk:Functor hierarchy proposal

From HaskellWiki

Revision as of 21:46, 15 January 2007 by Twanvl (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Um, it would be good if it was something like:

class (Idiom f) => Monad f where
  fmap f m = m >>= return . f -- or ap . return ?
  ap mf mv = mf >>= \f -> mv >>= \v -> return $ f v
  (>>=) :: f a -> (a -> f b) -> f b

Or am I missing the point?

Serhei 15:24, 29 January 2006 (UTC)

You can't put defaults for one class in another. Though that could be another proposal. —Ashley Y 21:02, 29 January 2006 (UTC)
Wasn't this part of John Meacham's class system proposal? What happend to this? -- Wolfgang Jeltsch 19:25, 2 February 2006 (UTC)
should really be merged with
, right ? (Btw, why such a symmetric operator symbol as
or some other assymetric one would be better .. even plain
is not so bad, imho.) Also, it would be nice to change
to only require
instead of
. (Or one could merge these four into something like
, which should use
anyway.) -- StefanLjungstrand 10:18, 3 November 2006 (UTC)

I think it makes sense to take return out of Applicative. Either into a separate step between Functor and Applicative, or into a new class altogether:

class Boxable f where
     return :: a -> f a
class (Functor f, Boxable f) => Applicative f where

But maybe this is just overengineering.

Twanvl 21:46, 15 January 2007 (UTC)