{-# LANGUAGE NoImplicitPrelude #-} module Data.Morpheus.Server.Internal.TH.Types ( ServerTypeDefinition (..), ServerDec, ServerDecContext (..), ) where import Control.Monad.Reader (Reader) import Data.Morpheus.Types.Internal.AST ( ANY, ConsD (..), IN, TypeDefinition, TypeKind, TypeName, ) import Prelude ( Bool, Maybe, Show, ) --- Core data ServerTypeDefinition cat s = ServerTypeDefinition { tName :: TypeName, typeArgD :: [ServerTypeDefinition IN s], tCons :: [ConsD cat s], tKind :: TypeKind, typeOriginal :: Maybe (TypeDefinition ANY s) } deriving (Show) type ServerDec = Reader ServerDecContext newtype ServerDecContext = ServerDecContext { namespace :: Bool }