-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Haskell 98 Groupoids -- -- Haskell 98 Groupoids @package groupoids @version 0.2 module Data.Groupoid -- | semigroupoid with inverses. This technically should be a category with -- inverses, except we need to use Ob to define the valid objects for the -- category class Semigroupoid k => Groupoid k inv :: Groupoid k => k a b -> k b a instance Groupoid k => Groupoid (Dual k) module Data.Isomorphism data Iso k a b Iso :: k a b -> k b a -> Iso k a b embed :: Iso k a b -> k a b project :: Iso k a b -> k b a instance Category k => Category (Iso k) instance Semigroupoid k => Groupoid (Iso k) instance Semigroupoid k => Semigroupoid (Iso k)