On Dec 14, 2007 6:37 PM, Benja Fallenstein <[EMAIL PROTECTED]> wrote: > such that the following two properties hold: > > * F(idX) = idF(X) for every object X in C > * F(g . f) = F(g) . F(f) for all morphisms f:X -> Y and g:Y -> Z."
Should we write instance Functor Val where fmap = undefined Would those properties be satisfied? Of course, fmap (g . f) == _|_ == fmap g . fmap f, but fmap id x == _|_ =/= x == id x. As my understanding of the relationship between bottoms and non-bottoms isn't that great, could anyone tell me if the above instance is sound (i.e. satisfy the expected properties)? If it is not, the implementation "fmap f = id" is really the only one sound, right? Thanks! -- Felipe. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe