first-class-patterns-0.1.0: First class patterns and pattern matching, using type families

Portabilityportable
Stabilityexperimental
MaintainerReiner Pope <reiner.pope@gmail.com>

Data.Pattern.Base.TypeList

Description

Type-level lists. These lists only describe the types, but contain no data. That is, they are phantom types.

Synopsis

Documentation

data Nil Source

The type of empty lists

Instances

List Nil 

data h :*: t Source

(:*:) corresponds to cons.

Instances

List t => List (:*: h t) 

type family a :++: b Source

Concatenation of lists. Instances:

 type instance Nil     :++: xs = xs
 type instance (h:*:t) :++: xs = h :*: (t :++: xs)