{-# LANGUAGE CPP #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE UndecidableInstances #-} -- | 'Syntactic' instances for tuples and 'Typed' symbol domains module Language.Syntactic.Sugar.TupleTyped where import Data.Typeable import Language.Haskell.TH #if __GLASGOW_HASKELL__ < 710 import Data.Orphans () #endif import Language.Syntactic import Language.Syntactic.Functional.Tuple deriveSyntacticForTuples (return . classPred ''Typeable ConT . return) (AppT (ConT ''Typed)) (\s -> AppE (ConE 'Typed) (AppE (VarE 'inj) s)) #if __GLASGOW_HASKELL__ < 708 7 #else 15 #endif