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

LicenseBSD3
MaintainerBrent Yorgey <byorgey@cis.upenn.edu>
Stabilityexperimental
Portabilitynon-portable (see .cabal)
Safe HaskellNone
LanguageHaskell2010

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

type family (a :: [*]) :++: (b :: [*]) :: [*] infixr 9 Source #

Concatenation of lists. Instances:

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

Instances

type ([] *) :++: xs Source # 
type ([] *) :++: xs = xs
type ((:) * h t) :++: xs Source # 
type ((:) * h t) :++: xs = (:) * h ((:++:) t xs)