{-# LANGUAGE UndecidableInstances #-} -- | 'Syntactic' instances for tuples with 'SimpleCtx' context module Language.Syntactic.Constructs.TupleSyntacticSimple where import Language.Syntactic.Syntax import Language.Syntactic.Constructs.Tuple instance ( Syntactic a dom, Eq (Internal a), Show (Internal a) , Syntactic b dom, Eq (Internal b), Show (Internal b) , Tuple SimpleCtx :<: dom , Select SimpleCtx :<: dom ) => Syntactic (a,b) dom where type Internal (a,b) = ( Internal a , Internal b ) desugar = desugarTup2 simpleCtx sugar = sugarTup2 simpleCtx instance ( Syntactic a dom, Eq (Internal a), Show (Internal a) , Syntactic b dom, Eq (Internal b), Show (Internal b) , Syntactic c dom, Eq (Internal c), Show (Internal c) , Tuple SimpleCtx :<: dom , Select SimpleCtx :<: dom ) => Syntactic (a,b,c) dom where type Internal (a,b,c) = ( Internal a , Internal b , Internal c ) desugar = desugarTup3 simpleCtx sugar = sugarTup3 simpleCtx instance ( Syntactic a dom, Eq (Internal a), Show (Internal a) , Syntactic b dom, Eq (Internal b), Show (Internal b) , Syntactic c dom, Eq (Internal c), Show (Internal c) , Syntactic d dom, Eq (Internal d), Show (Internal d) , Tuple SimpleCtx :<: dom , Select SimpleCtx :<: dom ) => Syntactic (a,b,c,d) dom where type Internal (a,b,c,d) = ( Internal a , Internal b , Internal c , Internal d ) desugar = desugarTup4 simpleCtx sugar = sugarTup4 simpleCtx instance ( Syntactic a dom, Eq (Internal a), Show (Internal a) , Syntactic b dom, Eq (Internal b), Show (Internal b) , Syntactic c dom, Eq (Internal c), Show (Internal c) , Syntactic d dom, Eq (Internal d), Show (Internal d) , Syntactic e dom, Eq (Internal e), Show (Internal e) , Tuple SimpleCtx :<: dom , Select SimpleCtx :<: dom ) => Syntactic (a,b,c,d,e) dom where type Internal (a,b,c,d,e) = ( Internal a , Internal b , Internal c , Internal d , Internal e ) desugar = desugarTup5 simpleCtx sugar = sugarTup5 simpleCtx instance ( Syntactic a dom, Eq (Internal a), Show (Internal a) , Syntactic b dom, Eq (Internal b), Show (Internal b) , Syntactic c dom, Eq (Internal c), Show (Internal c) , Syntactic d dom, Eq (Internal d), Show (Internal d) , Syntactic e dom, Eq (Internal e), Show (Internal e) , Syntactic f dom, Eq (Internal f), Show (Internal f) , Tuple SimpleCtx :<: dom , Select SimpleCtx :<: dom ) => Syntactic (a,b,c,d,e,f) dom where type Internal (a,b,c,d,e,f) = ( Internal a , Internal b , Internal c , Internal d , Internal e , Internal f ) desugar = desugarTup6 simpleCtx sugar = sugarTup6 simpleCtx instance ( Syntactic a dom, Eq (Internal a), Show (Internal a) , Syntactic b dom, Eq (Internal b), Show (Internal b) , Syntactic c dom, Eq (Internal c), Show (Internal c) , Syntactic d dom, Eq (Internal d), Show (Internal d) , Syntactic e dom, Eq (Internal e), Show (Internal e) , Syntactic f dom, Eq (Internal f), Show (Internal f) , Syntactic g dom, Eq (Internal g), Show (Internal g) , Tuple SimpleCtx :<: dom , Select SimpleCtx :<: dom ) => Syntactic (a,b,c,d,e,f,g) dom where type Internal (a,b,c,d,e,f,g) = ( Internal a , Internal b , Internal c , Internal d , Internal e , Internal f , Internal g ) desugar = desugarTup7 simpleCtx sugar = sugarTup7 simpleCtx