Portability | non-portable (GHC Extensions) |
---|---|

Stability | experimental |

Maintainer | Tom Hvitved <hvitved@diku.dk> |

Safe Haskell | Safe-Inferred |

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 whereSource

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.