indexed-list-literals-0.1.0.0: Type safe indexed list literals

Safe HaskellSafe
LanguageHaskell2010

Data.IndexedListLiterals

Synopsis

Documentation

class IndexedListLiterals (input :: Type) (length :: Nat) (output :: Type) | output length -> input, input -> output length where Source #

A type class which allows you to write tuples which can be transformed into a list the length of the list is also provided as a Nat

Minimal complete definition

toList

Methods

toList :: input -> [output] Source #

Instances

IndexedListLiterals (OneTuple a) 1 a Source # 

Methods

toList :: OneTuple a -> [a] Source #

IndexedListLiterals (a, a) 2 a Source # 

Methods

toList :: (a, a) -> [a] Source #

IndexedListLiterals (ZeroTuple Type a) 0 a Source # 

Methods

toList :: ZeroTuple Type a -> [a] Source #

IndexedListLiterals (a, a, a) 3 a Source # 

Methods

toList :: (a, a, a) -> [a] Source #

IndexedListLiterals (a, a, a, a) 4 a Source # 

Methods

toList :: (a, a, a, a) -> [a] Source #

IndexedListLiterals (a, a, a, a, a) 5 a Source # 

Methods

toList :: (a, a, a, a, a) -> [a] Source #

IndexedListLiterals (a, a, a, a, a, a) 6 a Source # 

Methods

toList :: (a, a, a, a, a, a) -> [a] Source #

IndexedListLiterals (a, a, a, a, a, a, a) 7 a Source # 

Methods

toList :: (a, a, a, a, a, a, a) -> [a] Source #

IndexedListLiterals (a, a, a, a, a, a, a, a) 8 a Source # 

Methods

toList :: (a, a, a, a, a, a, a, a) -> [a] Source #

IndexedListLiterals (a, a, a, a, a, a, a, a, a) 9 a Source # 

Methods

toList :: (a, a, a, a, a, a, a, a, a) -> [a] Source #

IndexedListLiterals (a, a, a, a, a, a, a, a, a, a) 10 a Source # 

Methods

toList :: (a, a, a, a, a, a, a, a, a, a) -> [a] Source #

IndexedListLiterals (a, a, a, a, a, a, a, a, a, a, a) 11 a Source # 

Methods

toList :: (a, a, a, a, a, a, a, a, a, a, a) -> [a] Source #

IndexedListLiterals (a, a, a, a, a, a, a, a, a, a, a, a) 12 a Source # 

Methods

toList :: (a, a, a, a, a, a, a, a, a, a, a, a) -> [a] Source #

IndexedListLiterals (a, a, a, a, a, a, a, a, a, a, a, a, a) 13 a Source # 

Methods

toList :: (a, a, a, a, a, a, a, a, a, a, a, a, a) -> [a] Source #

IndexedListLiterals (a, a, a, a, a, a, a, a, a, a, a, a, a, a) 14 a Source # 

Methods

toList :: (a, a, a, a, a, a, a, a, a, a, a, a, a, a) -> [a] Source #

IndexedListLiterals (a, a, a, a, a, a, a, a, a, a, a, a, a, a, a) 15 a Source # 

Methods

toList :: (a, a, a, a, a, a, a, a, a, a, a, a, a, a, a) -> [a] Source #

IndexedListLiterals (a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a) 16 a Source # 

Methods

toList :: (a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a) -> [a] Source #

IndexedListLiterals (a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a) 17 a Source # 

Methods

toList :: (a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a) -> [a] Source #

IndexedListLiterals (a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a) 18 a Source # 

Methods

toList :: (a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a) -> [a] Source #

IndexedListLiterals (a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a) 19 a Source # 

Methods

toList :: (a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a) -> [a] Source #

IndexedListLiterals (a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a) 20 a Source # 

Methods

toList :: (a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a) -> [a] Source #

type ILL = IndexedListLiterals Source #

An alias for IndexedListLiterals

data ZeroTuple a Source #

Intuitively the zero tuple is () or Void but this breaks the Functional Dependency "input -> output length" stopping reliable inference, so this constructor is used to preserve type information

Constructors

ZeroTuple 

Instances