{-# LANGUAGE TypeFamilies, FlexibleContexts #-}
module Futhark.Representation.AST.Annotations
( Annotations (..)
, module Futhark.Representation.AST.RetType
)
where
import qualified Data.Kind
import Futhark.Representation.AST.Syntax.Core
import Futhark.Representation.AST.RetType
import Futhark.Representation.AST.Attributes.Types
class (Show (LetAttr l), Show (ExpAttr l), Show (BodyAttr l), Show (FParamAttr l), Show (LParamAttr l), Show (RetType l), Show (BranchType l), Show (Op l),
Eq (LetAttr l), Eq (ExpAttr l), Eq (BodyAttr l), Eq (FParamAttr l), Eq (LParamAttr l), Eq (RetType l), Eq (BranchType l), Eq (Op l),
Ord (LetAttr l), Ord (ExpAttr l), Ord (BodyAttr l), Ord (FParamAttr l), Ord (LParamAttr l), Ord (RetType l), Ord (BranchType l), Ord (Op l),
IsRetType (RetType l), IsBodyType (BranchType l),
Typed (FParamAttr l), Typed (LParamAttr l), Typed (LetAttr l),
DeclTyped (FParamAttr l))
=> Annotations l where
type LetAttr l :: Data.Kind.Type
type LetAttr l = Type
type ExpAttr l :: Data.Kind.Type
type ExpAttr l = ()
type BodyAttr l :: Data.Kind.Type
type BodyAttr l = ()
type FParamAttr l :: Data.Kind.Type
type FParamAttr l = DeclType
type LParamAttr l :: Data.Kind.Type
type LParamAttr l = Type
type RetType l :: Data.Kind.Type
type RetType l = DeclExtType
type BranchType l :: Data.Kind.Type
type BranchType l = ExtType
type Op l :: Data.Kind.Type
type Op l = ()