syntactic-0.4: Generic abstract syntax, and utilities for embedded languages

Language.Syntactic.Features.Tuple

Description

Construction and selection of tuples

Synopsis

Documentation

data Tuple a whereSource

Expressions for constructing tuples

Constructors

Tup2 :: Tuple (a :-> (b :-> Full (a, b))) 
Tup3 :: Tuple (a :-> (b :-> (c :-> Full (a, b, c)))) 
Tup4 :: Tuple (a :-> (b :-> (c :-> (d :-> Full (a, b, c, d))))) 
Tup5 :: Tuple (a :-> (b :-> (c :-> (d :-> (e :-> Full (a, b, c, d, e)))))) 
Tup6 :: Tuple (a :-> (b :-> (c :-> (d :-> (e :-> (f :-> Full (a, b, c, d, e, f))))))) 
Tup7 :: Tuple (a :-> (b :-> (c :-> (d :-> (e :-> (f :-> (g :-> Full (a, b, c, d, e, f, g)))))))) 

data Select a whereSource

Expressions for selecting elements of a tuple

Constructors

Sel1 :: Sel1 a b => Select (a :-> Full b) 
Sel2 :: Sel2 a b => Select (a :-> Full b) 
Sel3 :: Sel3 a b => Select (a :-> Full b) 
Sel4 :: Sel4 a b => Select (a :-> Full b) 
Sel5 :: Sel5 a b => Select (a :-> Full b) 
Sel6 :: Sel6 a b => Select (a :-> Full b) 
Sel7 :: Sel7 a b => Select (a :-> Full b) 

selectPos :: Select a -> IntSource

Return the selected position, e.g.

 selectPos (Sel3 :: Select ((Int,Int,Int,Int) -> Int)) = 3