Copyright | (C) 2015 The University of Kansas |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | Andy Gill |
Stability | Experimental |
Safe Haskell | Safe |
Language | Haskell2010 |
A type class for transformations.
- class Transformation f g t | t -> f g where
- (#) :: t -> f a -> g a
Documentation
class Transformation f g t | t -> f g where Source
A (natural) transformation is inside t
, and contains f
and g
(typically Functor
s).
The order of arguments allows the use of GeneralizedNewtypeDeriving
to wrap
a :~>
, but maintain the Transformation
constraint. Thus, #
can be used
on abstract data types.
Transformation k f g ((:~>) k f g) |