{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE TypeFamilies #-}
module Futhark.IR.Decorations
( Decorations (..),
module Futhark.IR.RetType,
)
where
import qualified Data.Kind
import Futhark.IR.Prop.Types
import Futhark.IR.RetType
import Futhark.IR.Syntax.Core
class
( Show (LetDec l),
Show (ExpDec l),
Show (BodyDec l),
Show (FParamInfo l),
Show (LParamInfo l),
Show (RetType l),
Show (BranchType l),
Show (Op l),
Eq (LetDec l),
Eq (ExpDec l),
Eq (BodyDec l),
Eq (FParamInfo l),
Eq (LParamInfo l),
Eq (RetType l),
Eq (BranchType l),
Eq (Op l),
Ord (LetDec l),
Ord (ExpDec l),
Ord (BodyDec l),
Ord (FParamInfo l),
Ord (LParamInfo l),
Ord (RetType l),
Ord (BranchType l),
Ord (Op l),
IsRetType (RetType l),
IsBodyType (BranchType l),
Typed (FParamInfo l),
Typed (LParamInfo l),
Typed (LetDec l),
DeclTyped (FParamInfo l)
) =>
Decorations l
where
type LetDec l :: Data.Kind.Type
type LetDec l = Type
type ExpDec l :: Data.Kind.Type
type ExpDec l = ()
type BodyDec l :: Data.Kind.Type
type BodyDec l = ()
type FParamInfo l :: Data.Kind.Type
type FParamInfo l = DeclType
type LParamInfo l :: Data.Kind.Type
type LParamInfo 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 = ()