extensible-0.2: Poly-kinded, extensible ADTs

Copyright(c) Fumiaki Kinoshita 2015
LicenseBSD3
MaintainerFumiaki Kinoshita <fumiexcel@gmail.com>
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Data.Extensible.Inclusion

Description

 

Synopsis

Documentation

type (⊆) xs ys = Include ys xs Source

Unicode alias for Include

type Include ys xs = Forall (Member ys) xs Source

ys contains xs

inclusion :: forall xs ys. Include ys xs => Position ys :* xs Source

Reify the inclusion of type level sets.

shrink :: xs ys => (h :* ys) -> h :* xs Source

O(m log n) Select some elements.

spread :: xs ys => (h :| xs) -> h :| ys Source

O(m log n) Embed to a larger union.