I am trying as an experiment to write something as follows: data Wrapper a b where Pure :: (a -> b) -> Wrapper a b Nullable :: (Maybe a -> b) -> Wrapper a b
class Liftable a b where liftTo :: (b -> c) -> a b c instance Liftable Wrapper a where liftTo = Pure instance Liftable Wrapper (Maybe a) where liftTo = Nullable Obviously this code (with suitable extensions enabled) complains of overlapping type instances, but is there a way to accomplish redefining a class instance for one particular group of types while having it defined for all others? (Maybe a vs. a in this instance) -- Edward Amsden Student Computer Science Rochester Institute of Technology www.edwardamsden.com _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
