Copyright | (c) 2011 Patrick Bahr, Tom Hvitved |
---|---|
License | BSD3 |
Maintainer | Tom Hvitved <hvitved@diku.dk> |
Stability | experimental |
Portability | non-portable (GHC Extensions) |
Safe Haskell | Safe-Inferred |
Language | Haskell98 |
This module defines higher-order difunctors, a hybrid between higher-order functors (Johann, Ghani, POPL '08), and difunctors (Meijer, Hutton, FPCA '95). Higher-order difunctors are used to define signatures for compositional parametric generalised data types.
Documentation
class HDifunctor f where Source
This class represents higher-order difunctors.
HDifunctor f => HDifunctor ((:&:) f p) | |
(HDifunctor f, HDifunctor g) => HDifunctor ((:+:) f g) |
This class represents higher-order functors (Johann, Ghani, POPL '08) which are endofunctors on the category of endofunctors.
The parametrised constant functor.