{-# LANGUAGE DataKinds #-} {-# LANGUAGE RoleAnnotations #-} {-# LANGUAGE StandaloneKindSignatures #-} module CHAD.AST where import Data.Functor.Const (Const) import Data.Kind (Type) import CHAD.AST.Types.Ty type role Expr representational nominal nominal type Expr :: (Ty -> Type) -> [Ty] -> Ty -> Type data Expr x env t type Ex = Expr (Const ())