[Haskell] Applying Functors
Johan Glimming
glimming at kth.se
Tue Feb 1 10:21:13 EST 2005
Folks,
I wonder if there is any particular reason for not having a class for
object map of a functor (Functor-instances) in addition to the arrow
map (fmap). Now you may say that this is just the constructor, but in
my current example I have found it useful to have a general way of
taking an object/value a into F a since the constructor can be
arbitrary. I thought that I may need the return-operator in class
Monad. I call it flift:
class Lift f where
flift :: a -> f a
This works nicely for trivial datatypes like "data Unit a = Unit" and
"data Id a = Id a":
instance Lift Unit where
flift a = Unit
instance Lift Id where
flift a = Id a
My question is --- how would you define Lift for constructors such as
data Sum a = Inl a|Inr a and so forth?
Best Wishes,
Johan Glimming
More information about the Haskell
mailing list