| Copyright | (C) 2015 The University of Kansas | 
|---|---|
| License | BSD-style (see the file LICENSE) | 
| Maintainer | Andy Gill | 
| Stability | Experimental | 
| Safe Haskell | Safe | 
| Language | Haskell2010 | 
Control.Natural
Contents
Description
A data type and class for natural transformations.
- newtype f :~> g = NT {}
- type (~>) f g = forall x. f x -> g x
- wrapNT :: (forall a. f a -> g a) -> f :~> g
- unwrapNT :: Transformation f g t => t -> forall a. f a -> g a
- class Transformation f g t | t -> f g where
Newtype for a Natural Transformation
Type Synonym for a Natural Transformation
Conversion functions between the newtype and the synonym
unwrapNT :: Transformation f g t => t -> forall a. f a -> g a Source #
Class for Natural Transformations
class Transformation f g t | t -> f g where Source #
A (natural) transformation is inside t, and contains f and g
 (typically Functors).
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.
Minimal complete definition
Methods
(#) :: t -> forall a. f a -> g a infix 0 Source #
The invocation method for a natural transformation.
Instances
| Transformation k f g ((:~>) k f g) Source # | |
| Transformation * f IO (Object f) Source # | |