Module

Type.Data.List

Package
purescript-typelevel-lists
Repository
PureFunctor/purescript-typelevel-lists

Type-level heterogenous list of kinds for PureScript

#List' Source

data List' :: Type

Represents the type-level list.

#Item' Source

data Item' :: Type

Represents type-level list items.

#Nil' Source

data Nil' :: List'

Represents an empty List'.

Instances

#Cons' Source

data Cons' :: Item' -> List' -> List'

Prepends any Item' to a List', creating a new List'.

Instances

#type (:>) Source

Operator alias for Type.Data.List.Cons' (right-associative / precedence 1)

#TypeItem Source

data TypeItem :: Type -> Item'

Wraps a Type into an Item'.

#SymbolItem Source

data SymbolItem :: Symbol -> Item'

Wraps a Symbol into an Item'.

#IsMember Source

class IsMember (x :: Item') (xs :: List') (r :: Boolean) | x xs -> r

Performs membership testing given an Item' and a List'.

Instances

#Concat Source

class Concat (xs :: List') (ys :: List') (zs :: List') | xs ys -> zs

Concatenates two List's together.

Instances

#IsEmpty Source

class IsEmpty (xs :: List') (r :: Boolean) | xs -> r

Determines whether List' is empty.

Instances

#Init Source

class Init (xs :: List') (ys :: List') | xs -> ys

Takes the init items of a List'.

Instances

#Init' Source

class Init' (xs :: Item') (ys :: List') (zs :: List') | xs ys -> zs

Internal type class that acts as an accumulator.

Instances

#Last Source

class Last (xs :: List') (x :: Item') | xs -> x

Returns the last item of a List'.

Instances

#Length Source

class Length (xs :: List') (r :: Int) | xs -> r

Computes the length of a List' as a Type.Data.Peano.Int

Instances

#Length' Source

class Length' (xs :: List') (n :: Int) (r :: Int) | xs n -> r

Internal type that acts as an accumulator

Instances

#Take Source

class Take (n :: Int) (xs :: List') (ys :: List') | n xs -> ys

Takes an n amount of Item's from a List'.

Instances

#Drop Source

class Drop (n :: Int) (xs :: List') (ys :: List') | n ys -> ys

Drops an n amount of Item's from a List'.

Instances

#ListProxy Source

data ListProxy (l :: List')

A value-level proxy for List'

Constructors

#ItemProxy Source

data ItemProxy (i :: Item')

A value-level proxy for Item'

Constructors