Copyright | (c) Galois Inc 2014-2019 |
---|---|

Maintainer | Langston Barrett <langston@galois.com> |

Safe Haskell | Safe |

Language | Haskell98 |

This module declares classes for working with types with the kind
`(k -> *) -> *`

for any kind `k`

.

These classes generally require type-level evidence for operations on their subterms, but don't actually provide it themselves (because their types are not themselves parameterized, unlike those in Data.Parameterized.TraverableFC).

Note that there is still some ambiguity around naming conventions, see issue 23.

# Documentation

class TestEqualityC (t :: (k -> *) -> *) where Source #

## Instances

TestEqualityC (Some :: (k -> Type) -> Type) Source # | This instance demonstrates where the above class is useful: namely, in types with existential quantification. |

Defined in Data.Parameterized.ClassesC |

class TestEqualityC t => OrdC (t :: (k -> *) -> *) where Source #