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

Safe HaskellNone
LanguageHaskell2010

Language.Syntactic.Frontend.TupleConstrained

Contents

Description

Constrained Syntactic instances for Haskell tuples

Synopsis

Documentation

class TupleSat (dom :: * -> *) (p :: * -> Constraint) | dom -> p Source #

Type-level function computing the predicate attached to Tuple or Select (whichever appears first) in a domain.

Instances
TupleSat dom2 p => TupleSat (dom1 :+: dom2) p Source # 
Instance details

Defined in Language.Syntactic.Frontend.TupleConstrained

TupleSat ((Tuple :|| p) :+: dom2) p Source # 
Instance details

Defined in Language.Syntactic.Frontend.TupleConstrained

TupleSat ((Select :|| p) :+: dom2) p Source # 
Instance details

Defined in Language.Syntactic.Frontend.TupleConstrained

TupleSat dom p => TupleSat (dom :|| q) p Source # 
Instance details

Defined in Language.Syntactic.Frontend.TupleConstrained

TupleSat (Tuple :|| p) p Source # 
Instance details

Defined in Language.Syntactic.Frontend.TupleConstrained

TupleSat (Select :|| p) p Source # 
Instance details

Defined in Language.Syntactic.Frontend.TupleConstrained

TupleSat dom p => TupleSat (dom :| q) p Source # 
Instance details

Defined in Language.Syntactic.Frontend.TupleConstrained

Orphan instances

(Syntactic a, Domain a ~ dom, Syntactic b, Domain b ~ dom, TupleSat dom p, p (Internal a, Internal b), p (Internal a), p (Internal b), InjectC (Tuple :|| p) dom (Internal a, Internal b), InjectC (Select :|| p) dom (Internal a), InjectC (Select :|| p) dom (Internal b)) => Syntactic (a, b) Source # 
Instance details

Associated Types

type Domain (a, b) :: * -> * Source #

type Internal (a, b) :: * Source #

Methods

desugar :: (a, b) -> ASTF (Domain (a, b)) (Internal (a, b)) Source #

sugar :: ASTF (Domain (a, b)) (Internal (a, b)) -> (a, b) Source #

(Syntactic a, Domain a ~ dom, Syntactic b, Domain b ~ dom, Syntactic c, Domain c ~ dom, TupleSat dom p, p (Internal a, Internal b, Internal c), p (Internal a), p (Internal b), p (Internal c), InjectC (Tuple :|| p) dom (Internal a, Internal b, Internal c), InjectC (Select :|| p) dom (Internal a), InjectC (Select :|| p) dom (Internal b), InjectC (Select :|| p) dom (Internal c)) => Syntactic (a, b, c) Source # 
Instance details

Associated Types

type Domain (a, b, c) :: * -> * Source #

type Internal (a, b, c) :: * Source #

Methods

desugar :: (a, b, c) -> ASTF (Domain (a, b, c)) (Internal (a, b, c)) Source #

sugar :: ASTF (Domain (a, b, c)) (Internal (a, b, c)) -> (a, b, c) Source #

(Syntactic a, Domain a ~ dom, Syntactic b, Domain b ~ dom, Syntactic c, Domain c ~ dom, Syntactic d, Domain d ~ dom, TupleSat dom p, p (Internal a, Internal b, Internal c, Internal d), p (Internal a), p (Internal b), p (Internal c), p (Internal d), InjectC (Tuple :|| p) dom (Internal a, Internal b, Internal c, Internal d), InjectC (Select :|| p) dom (Internal a), InjectC (Select :|| p) dom (Internal b), InjectC (Select :|| p) dom (Internal c), InjectC (Select :|| p) dom (Internal d)) => Syntactic (a, b, c, d) Source # 
Instance details

Associated Types

type Domain (a, b, c, d) :: * -> * Source #

type Internal (a, b, c, d) :: * Source #

Methods

desugar :: (a, b, c, d) -> ASTF (Domain (a, b, c, d)) (Internal (a, b, c, d)) Source #

sugar :: ASTF (Domain (a, b, c, d)) (Internal (a, b, c, d)) -> (a, b, c, d) Source #

(Syntactic a, Domain a ~ dom, Syntactic b, Domain b ~ dom, Syntactic c, Domain c ~ dom, Syntactic d, Domain d ~ dom, Syntactic e, Domain e ~ dom, TupleSat dom p, p (Internal a, Internal b, Internal c, Internal d, Internal e), p (Internal a), p (Internal b), p (Internal c), p (Internal d), p (Internal e), InjectC (Tuple :|| p) dom (Internal a, Internal b, Internal c, Internal d, Internal e), InjectC (Select :|| p) dom (Internal a), InjectC (Select :|| p) dom (Internal b), InjectC (Select :|| p) dom (Internal c), InjectC (Select :|| p) dom (Internal d), InjectC (Select :|| p) dom (Internal e)) => Syntactic (a, b, c, d, e) Source # 
Instance details

Associated Types

type Domain (a, b, c, d, e) :: * -> * Source #

type Internal (a, b, c, d, e) :: * Source #

Methods

desugar :: (a, b, c, d, e) -> ASTF (Domain (a, b, c, d, e)) (Internal (a, b, c, d, e)) Source #

sugar :: ASTF (Domain (a, b, c, d, e)) (Internal (a, b, c, d, e)) -> (a, b, c, d, e) Source #

(Syntactic a, Domain a ~ dom, Syntactic b, Domain b ~ dom, Syntactic c, Domain c ~ dom, Syntactic d, Domain d ~ dom, Syntactic e, Domain e ~ dom, Syntactic f, Domain f ~ dom, TupleSat dom p, p (Internal a, Internal b, Internal c, Internal d, Internal e, Internal f), p (Internal a), p (Internal b), p (Internal c), p (Internal d), p (Internal e), p (Internal f), InjectC (Tuple :|| p) dom (Internal a, Internal b, Internal c, Internal d, Internal e, Internal f), InjectC (Select :|| p) dom (Internal a), InjectC (Select :|| p) dom (Internal b), InjectC (Select :|| p) dom (Internal c), InjectC (Select :|| p) dom (Internal d), InjectC (Select :|| p) dom (Internal e), InjectC (Select :|| p) dom (Internal f)) => Syntactic (a, b, c, d, e, f) Source # 
Instance details

Associated Types

type Domain (a, b, c, d, e, f) :: * -> * Source #

type Internal (a, b, c, d, e, f) :: * Source #

Methods

desugar :: (a, b, c, d, e, f) -> ASTF (Domain (a, b, c, d, e, f)) (Internal (a, b, c, d, e, f)) Source #

sugar :: ASTF (Domain (a, b, c, d, e, f)) (Internal (a, b, c, d, e, f)) -> (a, b, c, d, e, f) Source #

(Syntactic a, Domain a ~ dom, Syntactic b, Domain b ~ dom, Syntactic c, Domain c ~ dom, Syntactic d, Domain d ~ dom, Syntactic e, Domain e ~ dom, Syntactic f, Domain f ~ dom, Syntactic g, Domain g ~ dom, TupleSat dom p, p (Internal a, Internal b, Internal c, Internal d, Internal e, Internal f, Internal g), p (Internal a), p (Internal b), p (Internal c), p (Internal d), p (Internal e), p (Internal f), p (Internal g), InjectC (Tuple :|| p) dom (Internal a, Internal b, Internal c, Internal d, Internal e, Internal f, Internal g), InjectC (Select :|| p) dom (Internal a), InjectC (Select :|| p) dom (Internal b), InjectC (Select :|| p) dom (Internal c), InjectC (Select :|| p) dom (Internal d), InjectC (Select :|| p) dom (Internal e), InjectC (Select :|| p) dom (Internal f), InjectC (Select :|| p) dom (Internal g)) => Syntactic (a, b, c, d, e, f, g) Source # 
Instance details

Associated Types

type Domain (a, b, c, d, e, f, g) :: * -> * Source #

type Internal (a, b, c, d, e, f, g) :: * Source #

Methods

desugar :: (a, b, c, d, e, f, g) -> ASTF (Domain (a, b, c, d, e, f, g)) (Internal (a, b, c, d, e, f, g)) Source #

sugar :: ASTF (Domain (a, b, c, d, e, f, g)) (Internal (a, b, c, d, e, f, g)) -> (a, b, c, d, e, f, g) Source #

(Syntactic a, Domain a ~ dom, Syntactic b, Domain b ~ dom, Syntactic c, Domain c ~ dom, Syntactic d, Domain d ~ dom, Syntactic e, Domain e ~ dom, Syntactic f, Domain f ~ dom, Syntactic g, Domain g ~ dom, Syntactic h, Domain h ~ dom, TupleSat dom p, p (Internal a, Internal b, Internal c, Internal d, Internal e, Internal f, Internal g, Internal h), p (Internal a), p (Internal b), p (Internal c), p (Internal d), p (Internal e), p (Internal f), p (Internal g), p (Internal h), InjectC (Tuple :|| p) dom (Internal a, Internal b, Internal c, Internal d, Internal e, Internal f, Internal g, Internal h), InjectC (Select :|| p) dom (Internal a), InjectC (Select :|| p) dom (Internal b), InjectC (Select :|| p) dom (Internal c), InjectC (Select :|| p) dom (Internal d), InjectC (Select :|| p) dom (Internal e), InjectC (Select :|| p) dom (Internal f), InjectC (Select :|| p) dom (Internal g), InjectC (Select :|| p) dom (Internal h)) => Syntactic (a, b, c, d, e, f, g, h) Source # 
Instance details

Associated Types

type Domain (a, b, c, d, e, f, g, h) :: * -> * Source #

type Internal (a, b, c, d, e, f, g, h) :: * Source #

Methods

desugar :: (a, b, c, d, e, f, g, h) -> ASTF (Domain (a, b, c, d, e, f, g, h)) (Internal (a, b, c, d, e, f, g, h)) Source #

sugar :: ASTF (Domain (a, b, c, d, e, f, g, h)) (Internal (a, b, c, d, e, f, g, h)) -> (a, b, c, d, e, f, g, h) Source #

(Syntactic a, Domain a ~ dom, Syntactic b, Domain b ~ dom, Syntactic c, Domain c ~ dom, Syntactic d, Domain d ~ dom, Syntactic e, Domain e ~ dom, Syntactic f, Domain f ~ dom, Syntactic g, Domain g ~ dom, Syntactic h, Domain h ~ dom, Syntactic i, Domain i ~ dom, TupleSat dom p, p (Internal a, Internal b, Internal c, Internal d, Internal e, Internal f, Internal g, Internal h, Internal i), p (Internal a), p (Internal b), p (Internal c), p (Internal d), p (Internal e), p (Internal f), p (Internal g), p (Internal h), p (Internal i), InjectC (Tuple :|| p) dom (Internal a, Internal b, Internal c, Internal d, Internal e, Internal f, Internal g, Internal h, Internal i), InjectC (Select :|| p) dom (Internal a), InjectC (Select :|| p) dom (Internal b), InjectC (Select :|| p) dom (Internal c), InjectC (Select :|| p) dom (Internal d), InjectC (Select :|| p) dom (Internal e), InjectC (Select :|| p) dom (Internal f), InjectC (Select :|| p) dom (Internal g), InjectC (Select :|| p) dom (Internal h), InjectC (Select :|| p) dom (Internal i)) => Syntactic (a, b, c, d, e, f, g, h, i) Source # 
Instance details

Associated Types

type Domain (a, b, c, d, e, f, g, h, i) :: * -> * Source #

type Internal (a, b, c, d, e, f, g, h, i) :: * Source #

Methods

desugar :: (a, b, c, d, e, f, g, h, i) -> ASTF (Domain (a, b, c, d, e, f, g, h, i)) (Internal (a, b, c, d, e, f, g, h, i)) Source #

sugar :: ASTF (Domain (a, b, c, d, e, f, g, h, i)) (Internal (a, b, c, d, e, f, g, h, i)) -> (a, b, c, d, e, f, g, h, i) Source #

(Syntactic a, Domain a ~ dom, Syntactic b, Domain b ~ dom, Syntactic c, Domain c ~ dom, Syntactic d, Domain d ~ dom, Syntactic e, Domain e ~ dom, Syntactic f, Domain f ~ dom, Syntactic g, Domain g ~ dom, Syntactic h, Domain h ~ dom, Syntactic i, Domain i ~ dom, Syntactic j, Domain j ~ dom, TupleSat dom p, p (Internal a, Internal b, Internal c, Internal d, Internal e, Internal f, Internal g, Internal h, Internal i, Internal j), p (Internal a), p (Internal b), p (Internal c), p (Internal d), p (Internal e), p (Internal f), p (Internal g), p (Internal h), p (Internal i), p (Internal j), InjectC (Tuple :|| p) dom (Internal a, Internal b, Internal c, Internal d, Internal e, Internal f, Internal g, Internal h, Internal i, Internal j), InjectC (Select :|| p) dom (Internal a), InjectC (Select :|| p) dom (Internal b), InjectC (Select :|| p) dom (Internal c), InjectC (Select :|| p) dom (Internal d), InjectC (Select :|| p) dom (Internal e), InjectC (Select :|| p) dom (Internal f), InjectC (Select :|| p) dom (Internal g), InjectC (Select :|| p) dom (Internal h), InjectC (Select :|| p) dom (Internal i), InjectC (Select :|| p) dom (Internal j)) => Syntactic (a, b, c, d, e, f, g, h, i, j) Source # 
Instance details

Associated Types

type Domain (a, b, c, d, e, f, g, h, i, j) :: * -> * Source #

type Internal (a, b, c, d, e, f, g, h, i, j) :: * Source #

Methods

desugar :: (a, b, c, d, e, f, g, h, i, j) -> ASTF (Domain (a, b, c, d, e, f, g, h, i, j)) (Internal (a, b, c, d, e, f, g, h, i, j)) Source #

sugar :: ASTF (Domain (a, b, c, d, e, f, g, h, i, j)) (Internal (a, b, c, d, e, f, g, h, i, j)) -> (a, b, c, d, e, f, g, h, i, j) Source #

(Syntactic a, Domain a ~ dom, Syntactic b, Domain b ~ dom, Syntactic c, Domain c ~ dom, Syntactic d, Domain d ~ dom, Syntactic e, Domain e ~ dom, Syntactic f, Domain f ~ dom, Syntactic g, Domain g ~ dom, Syntactic h, Domain h ~ dom, Syntactic i, Domain i ~ dom, Syntactic j, Domain j ~ dom, Syntactic k, Domain k ~ dom, TupleSat dom p, p (Internal a, Internal b, Internal c, Internal d, Internal e, Internal f, Internal g, Internal h, Internal i, Internal j, Internal k), p (Internal a), p (Internal b), p (Internal c), p (Internal d), p (Internal e), p (Internal f), p (Internal g), p (Internal h), p (Internal i), p (Internal j), p (Internal k), InjectC (Tuple :|| p) dom (Internal a, Internal b, Internal c, Internal d, Internal e, Internal f, Internal g, Internal h, Internal i, Internal j, Internal k), InjectC (Select :|| p) dom (Internal a), InjectC (Select :|| p) dom (Internal b), InjectC (Select :|| p) dom (Internal c), InjectC (Select :|| p) dom (Internal d), InjectC (Select :|| p) dom (Internal e), InjectC (Select :|| p) dom (Internal f), InjectC (Select :|| p) dom (Internal g), InjectC (Select :|| p) dom (Internal h), InjectC (Select :|| p) dom (Internal i), InjectC (Select :|| p) dom (Internal j), InjectC (Select :|| p) dom (Internal k)) => Syntactic (a, b, c, d, e, f, g, h, i, j, k) Source # 
Instance details

Associated Types

type Domain (a, b, c, d, e, f, g, h, i, j, k) :: * -> * Source #

type Internal (a, b, c, d, e, f, g, h, i, j, k) :: * Source #

Methods

desugar :: (a, b, c, d, e, f, g, h, i, j, k) -> ASTF (Domain (a, b, c, d, e, f, g, h, i, j, k)) (Internal (a, b, c, d, e, f, g, h, i, j, k)) Source #

sugar :: ASTF (Domain (a, b, c, d, e, f, g, h, i, j, k)) (Internal (a, b, c, d, e, f, g, h, i, j, k)) -> (a, b, c, d, e, f, g, h, i, j, k) Source #

(Syntactic a, Domain a ~ dom, Syntactic b, Domain b ~ dom, Syntactic c, Domain c ~ dom, Syntactic d, Domain d ~ dom, Syntactic e, Domain e ~ dom, Syntactic f, Domain f ~ dom, Syntactic g, Domain g ~ dom, Syntactic h, Domain h ~ dom, Syntactic i, Domain i ~ dom, Syntactic j, Domain j ~ dom, Syntactic k, Domain k ~ dom, Syntactic l, Domain l ~ dom, TupleSat dom p, p (Internal a, Internal b, Internal c, Internal d, Internal e, Internal f, Internal g, Internal h, Internal i, Internal j, Internal k, Internal l), p (Internal a), p (Internal b), p (Internal c), p (Internal d), p (Internal e), p (Internal f), p (Internal g), p (Internal h), p (Internal i), p (Internal j), p (Internal k), p (Internal l), InjectC (Tuple :|| p) dom (Internal a, Internal b, Internal c, Internal d, Internal e, Internal f, Internal g, Internal h, Internal i, Internal j, Internal k, Internal l), InjectC (Select :|| p) dom (Internal a), InjectC (Select :|| p) dom (Internal b), InjectC (Select :|| p) dom (Internal c), InjectC (Select :|| p) dom (Internal d), InjectC (Select :|| p) dom (Internal e), InjectC (Select :|| p) dom (Internal f), InjectC (Select :|| p) dom (Internal g), InjectC (Select :|| p) dom (Internal h), InjectC (Select :|| p) dom (Internal i), InjectC (Select :|| p) dom (Internal j), InjectC (Select :|| p) dom (Internal k), InjectC (Select :|| p) dom (Internal l)) => Syntactic (a, b, c, d, e, f, g, h, i, j, k, l) Source # 
Instance details

Associated Types

type Domain (a, b, c, d, e, f, g, h, i, j, k, l) :: * -> * Source #

type Internal (a, b, c, d, e, f, g, h, i, j, k, l) :: * Source #

Methods

desugar :: (a, b, c, d, e, f, g, h, i, j, k, l) -> ASTF (Domain (a, b, c, d, e, f, g, h, i, j, k, l)) (Internal (a, b, c, d, e, f, g, h, i, j, k, l)) Source #

sugar :: ASTF (Domain (a, b, c, d, e, f, g, h, i, j, k, l)) (Internal (a, b, c, d, e, f, g, h, i, j, k, l)) -> (a, b, c, d, e, f, g, h, i, j, k, l) Source #

(Syntactic a, Domain a ~ dom, Syntactic b, Domain b ~ dom, Syntactic c, Domain c ~ dom, Syntactic d, Domain d ~ dom, Syntactic e, Domain e ~ dom, Syntactic f, Domain f ~ dom, Syntactic g, Domain g ~ dom, Syntactic h, Domain h ~ dom, Syntactic i, Domain i ~ dom, Syntactic j, Domain j ~ dom, Syntactic k, Domain k ~ dom, Syntactic l, Domain l ~ dom, Syntactic m, Domain m ~ dom, TupleSat dom p, p (Internal a, Internal b, Internal c, Internal d, Internal e, Internal f, Internal g, Internal h, Internal i, Internal j, Internal k, Internal l, Internal m), p (Internal a), p (Internal b), p (Internal c), p (Internal d), p (Internal e), p (Internal f), p (Internal g), p (Internal h), p (Internal i), p (Internal j), p (Internal k), p (Internal l), p (Internal m), InjectC (Tuple :|| p) dom (Internal a, Internal b, Internal c, Internal d, Internal e, Internal f, Internal g, Internal h, Internal i, Internal j, Internal k, Internal l, Internal m), InjectC (Select :|| p) dom (Internal a), InjectC (Select :|| p) dom (Internal b), InjectC (Select :|| p) dom (Internal c), InjectC (Select :|| p) dom (Internal d), InjectC (Select :|| p) dom (Internal e), InjectC (Select :|| p) dom (Internal f), InjectC (Select :|| p) dom (Internal g), InjectC (Select :|| p) dom (Internal h), InjectC (Select :|| p) dom (Internal i), InjectC (Select :|| p) dom (Internal j), InjectC (Select :|| p) dom (Internal k), InjectC (Select :|| p) dom (Internal l), InjectC (Select :|| p) dom (Internal m)) => Syntactic (a, b, c, d, e, f, g, h, i, j, k, l, m) Source # 
Instance details

Associated Types

type Domain (a, b, c, d, e, f, g, h, i, j, k, l, m) :: * -> * Source #

type Internal (a, b, c, d, e, f, g, h, i, j, k, l, m) :: * Source #

Methods

desugar :: (a, b, c, d, e, f, g, h, i, j, k, l, m) -> ASTF (Domain (a, b, c, d, e, f, g, h, i, j, k, l, m)) (Internal (a, b, c, d, e, f, g, h, i, j, k, l, m)) Source #

sugar :: ASTF (Domain (a, b, c, d, e, f, g, h, i, j, k, l, m)) (Internal (a, b, c, d, e, f, g, h, i, j, k, l, m)) -> (a, b, c, d, e, f, g, h, i, j, k, l, m) Source #

(Syntactic a, Domain a ~ dom, Syntactic b, Domain b ~ dom, Syntactic c, Domain c ~ dom, Syntactic d, Domain d ~ dom, Syntactic e, Domain e ~ dom, Syntactic f, Domain f ~ dom, Syntactic g, Domain g ~ dom, Syntactic h, Domain h ~ dom, Syntactic i, Domain i ~ dom, Syntactic j, Domain j ~ dom, Syntactic k, Domain k ~ dom, Syntactic l, Domain l ~ dom, Syntactic m, Domain m ~ dom, Syntactic n, Domain n ~ dom, TupleSat dom p, p (Internal a, Internal b, Internal c, Internal d, Internal e, Internal f, Internal g, Internal h, Internal i, Internal j, Internal k, Internal l, Internal m, Internal n), p (Internal a), p (Internal b), p (Internal c), p (Internal d), p (Internal e), p (Internal f), p (Internal g), p (Internal h), p (Internal i), p (Internal j), p (Internal k), p (Internal l), p (Internal m), p (Internal n), InjectC (Tuple :|| p) dom (Internal a, Internal b, Internal c, Internal d, Internal e, Internal f, Internal g, Internal h, Internal i, Internal j, Internal k, Internal l, Internal m, Internal n), InjectC (Select :|| p) dom (Internal a), InjectC (Select :|| p) dom (Internal b), InjectC (Select :|| p) dom (Internal c), InjectC (Select :|| p) dom (Internal d), InjectC (Select :|| p) dom (Internal e), InjectC (Select :|| p) dom (Internal f), InjectC (Select :|| p) dom (Internal g), InjectC (Select :|| p) dom (Internal h), InjectC (Select :|| p) dom (Internal i), InjectC (Select :|| p) dom (Internal j), InjectC (Select :|| p) dom (Internal k), InjectC (Select :|| p) dom (Internal l), InjectC (Select :|| p) dom (Internal m), InjectC (Select :|| p) dom (Internal n)) => Syntactic (a, b, c, d, e, f, g, h, i, j, k, l, m, n) Source # 
Instance details

Associated Types

type Domain (a, b, c, d, e, f, g, h, i, j, k, l, m, n) :: * -> * Source #

type Internal (a, b, c, d, e, f, g, h, i, j, k, l, m, n) :: * Source #

Methods

desugar :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n) -> ASTF (Domain (a, b, c, d, e, f, g, h, i, j, k, l, m, n)) (Internal (a, b, c, d, e, f, g, h, i, j, k, l, m, n)) Source #

sugar :: ASTF (Domain (a, b, c, d, e, f, g, h, i, j, k, l, m, n)) (Internal (a, b, c, d, e, f, g, h, i, j, k, l, m, n)) -> (a, b, c, d, e, f, g, h, i, j, k, l, m, n) Source #

(Syntactic a, Domain a ~ dom, Syntactic b, Domain b ~ dom, Syntactic c, Domain c ~ dom, Syntactic d, Domain d ~ dom, Syntactic e, Domain e ~ dom, Syntactic f, Domain f ~ dom, Syntactic g, Domain g ~ dom, Syntactic h, Domain h ~ dom, Syntactic i, Domain i ~ dom, Syntactic j, Domain j ~ dom, Syntactic k, Domain k ~ dom, Syntactic l, Domain l ~ dom, Syntactic m, Domain m ~ dom, Syntactic n, Domain n ~ dom, Syntactic o, Domain o ~ dom, TupleSat dom p, p (Internal a, Internal b, Internal c, Internal d, Internal e, Internal f, Internal g, Internal h, Internal i, Internal j, Internal k, Internal l, Internal m, Internal n, Internal o), p (Internal a), p (Internal b), p (Internal c), p (Internal d), p (Internal e), p (Internal f), p (Internal g), p (Internal h), p (Internal i), p (Internal j), p (Internal k), p (Internal l), p (Internal m), p (Internal n), p (Internal o), InjectC (Tuple :|| p) dom (Internal a, Internal b, Internal c, Internal d, Internal e, Internal f, Internal g, Internal h, Internal i, Internal j, Internal k, Internal l, Internal m, Internal n, Internal o), InjectC (Select :|| p) dom (Internal a), InjectC (Select :|| p) dom (Internal b), InjectC (Select :|| p) dom (Internal c), InjectC (Select :|| p) dom (Internal d), InjectC (Select :|| p) dom (Internal e), InjectC (Select :|| p) dom (Internal f), InjectC (Select :|| p) dom (Internal g), InjectC (Select :|| p) dom (Internal h), InjectC (Select :|| p) dom (Internal i), InjectC (Select :|| p) dom (Internal j), InjectC (Select :|| p) dom (Internal k), InjectC (Select :|| p) dom (Internal l), InjectC (Select :|| p) dom (Internal m), InjectC (Select :|| p) dom (Internal n), InjectC (Select :|| p) dom (Internal o)) => Syntactic (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) Source # 
Instance details

Associated Types

type Domain (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) :: * -> * Source #

type Internal (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) :: * Source #

Methods

desugar :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) -> ASTF (Domain (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)) (Internal (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)) Source #

sugar :: ASTF (Domain (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)) (Internal (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)) -> (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) Source #