http://en.wikibooks.org/wiki/Haskell/Category_theory#Monads http://en.wikibooks.org/wiki/Haskell/Category_theory#Monads
unit :: a -> m a join :: m (m a) -> m a
That s nice, but I have something slightly different. Glossing over the gory details, I have a type that has good unit and join functions, but its fmap is not well behaved (fmap g . fmap f is not necessarily fmap (g.f)). Because of this, it cannot be made an instance of Monad. Nonetheless, I d like to give it as much generic functionality as possible.
So my question is, what category theoretic structures are similar to monads in that they have a unit and join?
I realize that on some level, the above question is ill-defined. For monads the unit and join definitions only make sense in terms of the fmap definition. Without fmap, you can t define any of the monad laws, so any definitions of unit/join would be equally "valid." So I m looking for functions other than fmap that it might make sense to define some "not-monad" laws on these unit and join functions.