quickspec-0.9.2: Equational laws for free

Safe HaskellNone



A relation between types and values. TypeRel f relates each type a to a set of values of type f a.


type TypeRel f = TypeMap (List `O` f)Source

lookup :: Typeable a => a -> TypeRel f -> [f a]Source

mapValues :: (forall a. Typeable a => f a -> g a) -> TypeRel f -> TypeRel gSource

gather :: [Some f] -> Some (List `O` f)Source

disperse :: Some (List `O` f) -> [Some f]Source

classify :: [Some f] -> [Some (List `O` f)]Source