data-diverse-0.1.0.0: Extensible records and polymorphic variants.

Safe HaskellSafe
LanguageHaskell2010

Data.Diverse.Reiterate

Synopsis

Documentation

class Reiterate c xs where Source #

Allows iterating over the types in a typelist

Minimal complete definition

reiterate

Methods

reiterate :: c xs r -> c (Tail xs) r Source #

Return the next iteration without the Head type x in (x ': xs)

Instances

Reiterate k c ((:) Type x xs) => Reiterate k (Via k c) ((:) Type x xs) Source # 

Methods

reiterate :: (Type ': x) xs xs r -> (Type ': x) xs (Tail Type xs) r Source #

Reiterate * CaseTypeable xs Source # 

Methods

reiterate :: xs xs r -> xs (Tail Type xs) r Source #

Reiterate * (Cases fs) xs Source # 

Methods

reiterate :: xs xs r -> xs (Tail Type xs) r Source #

class ReiterateN c n xs where Source #

Allows iterating over the types in a typelist, whilst also incrementing an Nat index

Minimal complete definition

reiterateN

Methods

reiterateN :: c n xs r -> c (n + 1) (Tail xs) r Source #

Return the next iteration without the Head type x in (x ': xs)

Instances

ReiterateN k c n ((:) Type x xs) => ReiterateN k (ViaN k c) n ((:) Type x xs) Source # 

Methods

reiterateN :: n ((Type ': x) xs) xs r -> n ((Type ': x) xs + 1) (Tail Type xs) r Source #

ReiterateN * (CasesN fs) n xs Source # 

Methods

reiterateN :: n xs xs r -> n (xs + 1) (Tail Type xs) r Source #