-- |
-- Module      :  Control.Category.Hask
  Copyright    :   ( c ) 2013  
-- License     :  GPL v3 (see COPYING)
-- Maintainer  :  (@) jsag $ hvl.no
-- 
-- Re-exports of all the common category-theory inspired classes from the
  " base " package , i.e. basically endofunctors in the Hask category ( with
  functions  as morphisms ) .
  The module is thus intended to be imported @qualified as 
-- 
-- Main use case would be defining new such functors / monads etc.
-- yourself; even if you only intend to use them through the more
-- general category-agnostic interface established in this package
-- then the /instances/ should still be defined for the plain old
  Hask - specific classes , i.e. for some
-- 
-- > data F a = ...
-- > fmapF :: (a->b) -> F a->F b@
-- >
  > instance Hask .   where
-- >   Hask.fmap = fmapF
-- 
-- An instance of 'Control.Functor.Constrained.Functor' arises automatically
  from this , as defined generically for all  functors in that
-- module.

module Control.Category.Hask( module Prelude
                            , module Control.Category
                            , module Control.Applicative
                            , module Control.Monad 
                            ) where
import Prelude hiding ((.), id)
import Control.Category
import Control.Applicative
import Control.Monad

 |
 Module      :  Control.Category.Hask
 License     :  GPL v3 (see COPYING)
 Maintainer  :  (@) jsag $ hvl.no
 
 Re-exports of all the common category-theory inspired classes from the
 
 Main use case would be defining new such functors / monads etc.
 yourself; even if you only intend to use them through the more
 general category-agnostic interface established in this package
 then the /instances/ should still be defined for the plain old
 
 > data F a = ...
 > fmapF :: (a->b) -> F a->F b@
 >
 >   Hask.fmap = fmapF
 
 An instance of 'Control.Functor.Constrained.Functor' arises automatically
 module.
  Copyright    :   ( c ) 2013  
  " base " package , i.e. basically endofunctors in the Hask category ( with
  functions  as morphisms ) .
  The module is thus intended to be imported @qualified as 
  Hask - specific classes , i.e. for some
  > instance Hask .   where
  from this , as defined generically for all  functors in that

module Control.Category.Hask( module Prelude
                            , module Control.Category
                            , module Control.Applicative
                            , module Control.Monad 
                            ) where
import Prelude hiding ((.), id)
import Control.Category
import Control.Applicative
import Control.Monad
