This library provides combinators and typeclasses for working and manipulating
type-level predicates in Haskell, which are represented as matchable type-level
functions k ~> Type from the singletons library. See Data.Type.Predicate
for a good starting point, and the documentation for Predicate on how to
define predicates.