Safe Haskell  None 

Documentation
class Eq a => Matchable a whereSource
A class for types that compose similar to wildcards.
All instances must satisfy the following:

match
defines a partial order;top
is the top element of this order andintersect
is a meet.  Meets are exact: if
match x y
andmatch x z
, thenmatch x (fromJust (intersect y z))
, if such a meet exists.
Minimal complete definition: top and intersect.