typelevel-1.0.1: Useful type level operations (type families and related operators).

Safe HaskellNone
LanguageHaskell2010

Type.List

Documentation

type family Removed el cont :: l Source

Instances

type Removed [e] e [e] el ((:) e l ls) = If [e] ((:==) e el l) ls ((:) e l (Removed [e] e [e] el ls)) Source 

type family RemovedIdx idx cont :: l Source

Instances

type RemovedIdx [k] [k] idx ((:) k l ls) = If [k] ((:==) Nat idx 0) ls ((:) k l (RemovedIdx [k] [k] ((-) idx 1) ls)) Source 

type family ElAt idx cont :: l Source

Instances

type ElAt k [k] idx ((:) k l ls) = If k ((:==) Nat idx 0) l (ElAt k [k] ((-) idx 1) ls) Source