{-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE NoImplicitPrelude #-} module Feature.Inference.Names ( api, ) where import Data.Morpheus.Server (interpreter) import Data.Morpheus.Server.Types ( Arg (..), GQLRequest, GQLResponse, GQLType (..), RootResolver (..), Undefined, defaultRootResolver, ) import Relude hiding (Undefined) data MyEnum = MyEnum deriving (Generic, GQLType) newtype Input = Input {data' :: Text} deriving (Generic) deriving anyclass (GQLType) newtype Query (m :: Type -> Type) = Query { type' :: Arg "in" Input -> Text } deriving (Generic) deriving anyclass (GQLType) root :: RootResolver IO () Query Undefined Undefined root = defaultRootResolver { queryResolver = Query {type' = \(Arg Input {data'}) -> data'} } api :: GQLRequest -> IO GQLResponse api = interpreter root