-- |
-- Module : Control.Category.Hask
-- Copyright : (c) 2013 Justus Sagemüller
-- 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 Hask@.
--
-- 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.Functor F 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