module DDC.Source.Tetra.Exp.Annot
( module DDC.Source.Tetra.Exp.Generic
, Annot
, HasAnonBind (..)
, Name
, Bound
, Bind
, Exp
, Lets
, Alt
, Pat
, Clause
, GuardedExp
, Guard
, Cast
, DaCon (..)
, Witness
, WiCon)
where
import DDC.Source.Tetra.Exp.Generic
import DDC.Source.Tetra.Prim
import qualified DDC.Type.Exp as T
data Annot a
instance HasAnonBind (Annot a) where
isAnon _ (T.BAnon _) = True
isAnon _ _ = False
type instance GName (Annot a) = Name
type instance GAnnot (Annot a) = a
type instance GBind (Annot a) = T.Bind Name
type instance GBound (Annot a) = T.Bound Name
type instance GPrim (Annot a) = PrimVal
type Bound = T.Bound Name
type Bind = T.Bind Name
type Exp a = GExp (Annot a)
type Lets a = GLets (Annot a)
type Alt a = GAlt (Annot a)
type Pat a = GPat (Annot a)
type Clause a = GClause (Annot a)
type GuardedExp a = GGuardedExp (Annot a)
type Guard a = GGuard (Annot a)
type Cast a = GCast (Annot a)
type Witness a = GWitness (Annot a)
type WiCon a = GWiCon (Annot a)