Data.Type.Product.Env
data Env k v ps
type family Insert (x :: k) (a :: v) (ps :: [(k, v)]) :: [(k, v)] where ...
type family Delete (x :: k) (ps :: [(k, v)]) :: [(k, v)] where ...
type family Difference (ps :: [(k, v)]) (qs :: [(k, w)]) :: [(k, v)] where ...
type family Union (ps :: [(k, v)]) (qs :: [(k, v)]) :: [(k, v)] where ...
type family Intersection (ps :: [(k, v)]) (qs :: [(k, w)]) :: [(k, v)] where ...