!mB      !"#$%&'()*+,-./0123456789:;<=>?@A`SafeBCDSafe.HUV Qmorpheus-graphql-GraphQL Arrays , Resolvers and NonNull fieldsmorpheus-graphqlextension for graphQLmorpheus-graphql GraphQL Unionmorpheus-graphqlGraphQL input Objectmorpheus-graphql GraphQL Enummorpheus-graphqlGraphQL Objectmorpheus-graphqlRGraphQL Scalar: Int, Float, String, Boolean or any user defined custom Scalar typeSafe 7HSUVX  EFGHIJKLMNOP None79: QRSTUVWXYZ[\ None ]^_` None7: pmorpheus-graphql Primitive Values for GQLScalar: , , ,  . for performance reason type a represents GraphQl  valuebcdefg hijk None79 WXYZlmnopqrstuvwxy None$zz{|}~None$NoneNonesNoneNone NonePNone$None$NoneINoneNone:UNone:v     None $.XkUNone$.@HVX_kNoneG !"#$%&'()*None$+,None$M-None$>. None$>/!None$>0123456"None:789:;<=>?@ABCDEFGHIJKL#None:=?P!EFGHIMNOPQRSTUVWXYZ[\]^_`abcdefgh$None:=?3ijklmnopqrstuvwxyz{|}~%None79 morpheus-graphqlGraphQL Responsemorpheus-graphqlGraphQL HTTP Request Body &None$4HVmorpheus-graphql/Monad Transformer that sums all effect Together'None >@HV(None@X%morpheus-graphqlGraphQL Scalar and 0 should be provided for every instances manuallymorpheus-graphqlvalue parsing and validatingFfor exhaustive pattern matching should be handled all scalar types : , , ,  $invalid values can be reported with  constructor : n parseValue String _ = Left "" -- without error message -- or parseValue String _ = Left "Error Message" morpheus-graphql/serialization of haskell type into scalar value)NoneP%_ *NoneHV%+None$&9,None$&-None$&.None$'/None$'i0None$'1NoneHV(2None$(b3None(4None=?UVXk)05None$=?UVX)6None) 7None$*a 8None$-./=?@AHUVX1 morpheus-graphqlKGraphQL Root resolver, also the interpreter generates a GQL schema from it." is required, # and $2 are optional, if your schema does not supports mutation or  subscription , you acn use () for it.morpheus-graphqlPure Resolver without effect'morpheus-graphqlGraphQL Resolver)morpheus-graphqlWGraphQL Resolver for mutation or subscription resolver , adds effect to normal resolverm !"#$%&'()9None$.8=>?HUVXk7*morpheus-graphql<GraphQL type, every graphQL type should have an instance of :; and *. $ ... deriving (Generic, GQLType) if you want to add description o ... deriving (Generic) instance GQLType ... where description = const "your description ..." morpheus-graphql%replaces typeName (A,B) with Pair_A_B*+,<None7HV9-morpheus-graphql#default GraphQL type, parses only  and  values, serialized always as -./=None79HV:/ >None7=?HV:?None7HV;M @None79HV;ANone7HUVH !"#ENone7HPUV>$%&FNone79HUV?V'()*+,-./012345678GNone$UV?9HNone,.=>?@AHUVXkA:morpheus-graphql/Decode GraphQL query arguments and input values;<INone$B%=JNone$.Bp>NoneB'  !"#$%&'()*+,-./012'')(210&%*+, -./ !"#$KNone$7=?DA?@ABCDELNone$G63morpheus-graphqlshared GraphQL state between  websocket and http0 server, stores information about subscriptions4morpheus-graphqlinitializes empty GraphQL state 3F4GHIJKLMNone$,-=>?@AHSUVXkVMmorpheus-graphqlSintrospection Does not care about resolving monad, some fake monad just for mockingNmorpheus-graphqlVGenerates internal GraphQL Schema for query validation and introspection rendering * kind: object, scalar, enum ... * args}: type of field arguments * '()' for 'input values' , they are just JSON properties and does not have any argument * " for field Resolvers Types, where  is type of argumentsOmorpheus-graphqlFcontext , like Proxy with multiple parameters contains types of : * a: actual gql type * kind: object, scalar, enum ... * args: InputType | OutputTypePmorpheus-graphql+recursion for Object types, both of them :  and ; iterates on field types and introspects them recursivelyQmorpheus-graphqlintrospects Of Resolver a as argument and b as output typeRmorpheus-graphql`recursion for union types iterates on possible types for UNION and introspects them recursivelySTUVWNNone$7UVkW5XYZONone$,.=>?@AHPUVXk\[morpheus-graphql"Derives resolvers by object fields\morpheus-graphqlHandles all operators: Query, Mutation and Subscription, if you use it with Mutation or Subscription all effects inside will be lost]morpheus-graphqlUResolves and encodes UNION, Handles all operators: Query, Mutation and Subscription,^_`abcPNone]=defghiQNone$]jRNone] klmnopqrstuSNone$^BvTNone$^wxUNone$=?UVX_yVNone$__z{|}WNoneUV_~XNone$`YNone$P`LZNone`[None$=?UVXa \None$aM]None$=?UVXa^None$,>SXb3None$,>SXc5morpheus-graphql2Wai WebSocket Server App for GraphQL subscriptions345543_None=>?@ASXjV6morpheus-graphqlDmain query processor and resolver possible versions of interpreter with effect and state: where 3 is State Monad of subscriptions  k :: GQLState -> a -> IO a without effect and state: stateless query processor without any effect, if you don't need any subscription use this one , is simple and fast = k :: a -> IO a -- or k :: GQLRequest -> IO GQLResponse 67Nonej6767None$>k9morpheus-graphqlGenerates schema.gql file from  89:;9:;8`None$l-aNone$.Xl<None$>l <=>?@A =<@>A?bSafemcdefghij k l m n o%p%q%r%s%s%t%u%v&w&w&x&y'z'{'|'}(~((8888888888999<<<LL__a                        t      !"#$%&'()*+,-./01234456789:;<=>?@ABCDEFGHIJKKLMNNOPQQRSTTUVWXYZ[\]^_`abbcdefghijklmnopqrstuvwxyz{| }!~!!!!!!""""""""""""""""""""""############################$$$$$$$$$$u$$$$$$$$$$$$%%%%&&&&&&&&&&&&&&&&&'(()))))))))))))**+,--./012333334444566666666667777777777 8 8 8 8 89999==i=h=g=e=f===>>>>>>>????????? @!@!@@@@@"@#A$A$A%A&A&AAA'A(A)A*A+A,A-BBB{B.C/CiChCgCeCfCCCC0CC1C2C3C4C5C6C7C8C9D:D:DDDDE;E<E=F>F>F?F@FAFAFFF'F(F)F*F+F,F-FBFBFCGDHEHFHGIHJIKJKKKLKMKNKOKPLQLRLSLTLULVLWMXMYMbMZM[M\M]M^M_M`MaNbNcNdOeOfOgOhOiOjOkOlOmPnPnPoPpPqPrQsRtRuRvRwRxRyRzR{R|R}R~STTUVVVVWXYZZZ[\]^^^^^^``bbbbbbbb-morpheus-graphql-0.2.2-CmdGhbtzq7j6xrpoCkuHHhData.Morpheus.KindData.Morpheus.TypesData.Morpheus.ClientData.Morpheus.Server Data.MorpheusData.Morpheus.Document&Data.Morpheus.Execution.Internal.UtilsData.Morpheus.Types.Custom!Data.Morpheus.Types.Internal.BaseData.Morpheus.Types.Internal.TH"Data.Morpheus.Types.Internal.Value'Data.Morpheus.Types.Internal.ValidationData.Morpheus.Error.Utils'Data.Morpheus.Parsing.Internal.InternalData.Morpheus.Error.Variable Data.Morpheus.Error.SubscriptionData.Morpheus.Error.SelectionData.Morpheus.Error.SchemaData.Morpheus.Error.MutationData.Morpheus.Error.Fragment&Data.Morpheus.Error.Document.Interface!Data.Morpheus.Error.Client.ClientData.Morpheus.Error.Arguments!Data.Morpheus.Types.Internal.Data"Data.Morpheus.Types.Internal.DataD(Data.Morpheus.Execution.Internal.Declare$Data.Morpheus.Execution.Client.Aeson%Data.Morpheus.Rendering.Haskell.Terms&Data.Morpheus.Rendering.Haskell.Values%Data.Morpheus.Rendering.Haskell.Types&Data.Morpheus.Rendering.Haskell.RenderData.Morpheus.Rendering.GQL%Data.Morpheus.Parsing.Internal.Create*Data.Morpheus.Types.Internal.AST.Selection-Data.Morpheus.Types.Internal.AST.RawSelection*Data.Morpheus.Types.Internal.AST.OperationData.Morpheus.Types.IO#Data.Morpheus.Types.Internal.Stream$Data.Morpheus.Execution.Client.FetchData.Morpheus.Types.GQLScalar$Data.Morpheus.Parsing.Internal.Terms#Data.Morpheus.Parsing.Request.Value'Data.Morpheus.Parsing.Request.Arguments"Data.Morpheus.Parsing.Request.Body'Data.Morpheus.Parsing.Request.Operation&Data.Morpheus.Parsing.Request.Fragment'Data.Morpheus.Parsing.Document.DataType%Data.Morpheus.Parsing.Document.Parser&Data.Morpheus.Parsing.Client.ParseMeta#Data.Morpheus.Parsing.Client.ParserData.Morpheus.Error.Internal/Data.Morpheus.Execution.Server.Generics.EnumRep(Data.Morpheus.Execution.Document.ConvertData.Morpheus.Error.Input&Data.Morpheus.Types.Internal.WebSocketData.Morpheus.Types.ResolverData.Morpheus.Types.GQLType GHC.GenericsGenericData.Morpheus.Types.IDData.Morpheus.Schema.TypeKindData.Morpheus.Schema.InputValueData.Morpheus.Schema.FieldData.Morpheus.Schema.EnumValueData.Morpheus.Schema.Type1Data.Morpheus.Schema.Internal.RenderIntrospection&Data.Morpheus.Schema.DirectiveLocationData.Morpheus.Schema.DirectiveData.Morpheus.Schema.SchemaData.Morpheus.Schema.JSONType&Data.Morpheus.Parsing.JSONSchema.Parse%Data.Morpheus.Execution.Server.Decode(Data.Morpheus.Execution.Document.GQLType(Data.Morpheus.Execution.Document.Declare+Data.Morpheus.Execution.Subscription.Apollo3Data.Morpheus.Execution.Subscription.ClientRegister)Data.Morpheus.Execution.Server.IntrospectData.Morpheus.Schema.SchemaAPI%Data.Morpheus.Execution.Server.EncodeData.Morpheus.Types.Types$Data.Morpheus.Parsing.Request.Parser'Data.Morpheus.Validation.Internal.Utils,Data.Morpheus.Validation.Document.Validation(Data.Morpheus.Execution.Document.Compile(Data.Morpheus.Execution.Client.Selection'Data.Morpheus.Validation.Query.Fragment)Data.Morpheus.Validation.Query.Input.Enum+Data.Morpheus.Validation.Query.Input.Object(Data.Morpheus.Validation.Query.Arguments.Data.Morpheus.Validation.Query.Utils.Selection(Data.Morpheus.Validation.Query.Selection'Data.Morpheus.Validation.Query.Variable)Data.Morpheus.Validation.Query.Validation&Data.Morpheus.Execution.Server.Resolve*Data.Morpheus.Execution.Server.Interpreter&Data.Morpheus.Execution.Client.Compile$Data.Morpheus.Execution.Client.BuildPaths_morpheus_graphqlWRAPPER INPUT_UNIONUNION INPUT_OBJECTENUMOBJECTSCALARGQL_KIND ScalarValueIntFloatStringBoolean GQLResponseDataErrors GQLRequestquery operationName variablesEventchannelscontentFetchArgs__fetchfetch GQLScalar parseValue serializeGQLRootResolver queryResolvermutationResolversubscriptionResolver SubRootResResolverresolver toMutResolver mutResolverGQLTypeKIND descriptionIDunpackIDIOSubResIOMutResIOResGQLState initGQLState gqlSocketApp Interpreter interpreterparseFullGQLDocumenttoGraphQLDocumenttoMorpheusHaskellAPi gqlDocument defineQuerygqldefineByDocumentFiledefineByIntrospectionFiledefineByDocumentdefineByIntrospection nameSpaceWith nonCapitalcapitalMapKindpairssizeMapArgsoneOfPairvaluekeymapKindFromList EnhancedKeylocationuid CollectionKeyLocationlinecolumnPositionenhanceKeyWithNullliftText liftTextTuple liftTextMapapply text-1.2.3.1Data.Text.InternalTextValueEnumObjectNullListScalarconvertToJSONNameconvertToHaskellNamedecodeScientific replaceValue ResolveValueResolveTSchemaValidation Validation JSONErrormessage locations GQLErrorsGQLErrordesc positions failResolveT errorMessageglobalErrorMessage renderErrors toLocationbadRequestErrorParser getLocationprocessErrorBundleincompatibleVariableTypeunusedVariablesvariableGotInvalidValue unknownTypeundefinedVariableuninitializedVariablesubscriptionIsNotDefinedfieldNotResolvedhasNoSubfieldscannotQueryFieldduplicateQuerySelectionssubfieldsNotSelectedschemaValidationErrornameCollisionErrormutationIsNotDefinedfragmentNameCollisionunusedFragmentcannotSpreadWithinItselfunknownFragmentcannotBeSpreadOnTypeImplementsErrorUnexpectedTypeUndefinedField expectedType foundTypeunknownInterfacepartialImplementsrenderGQLErrorsargumentGotInvalidValueunknownArgumentsargumentNameCollisionundefinedArgument DataTypeLibobjectunionleaf inputObject inputUnionmutation subscription DataFullTypeUnionLeaf InputObject OutputObject InputUnion RawDataType Interface FinalDataType ImplementsimplementsInterfaces unImplementsDataKind ScalarKindEnumKind ObjectKind UnionKindDataLeaf BaseScalar CustomScalarLeafEnumDataTypetypeNametypeFingerprinttypeDescriptiontypeVisibilitytypeData DataField fieldName fieldArgs fieldTypefieldTypeWrappers fieldHiddenDataTypeWrapperListType NonNullType DataArguments DataInputTypeDataOutputType DataUnionDataOutputObjectDataInputObjectDataOutputField DataArgumentDataInputField DataObjectDataEnum DataScalar DataValidator validateValueDataFingerprintSystemFingerprintTypeableFingerprint DataTypeKind KindScalar KindObject KindUnionKindEnumKindInputObjectKindList KindNonNullKindInputUnionisFieldNullableshowWrappedTypeshowFullAstType initTypeLib allDataTypeslookupDataTypekindOf isTypeDefined defineTypeConsDcNamecFieldsTypeDtNametConsFieldD fieldNameD fieldTypeDQueryD queryText queryTypes queryArgTypesGQLTypeDAppDListDMaybeDResDBaseDgqlToHSWrappers declareTypederiveFromJSON takeValueTypeContext moduleNameimports extensionsscopepubSubScopeQueryMutation Subscriptionindent renderEqual renderReturn renderData renderCon renderMaybe renderList renderTuple renderSetrenderAssignmentrenderExtension renderWrappedrenderUnionConrenderRootResolverrenderResolver renderTyperenderHaskellDocumentrenderGraphQLDocument createFieldcreateArgument createTypecreateScalarTypecreateEnumTypecreateUnionTypecreateDataTypeLib SelectionRec SelectionSetUnionSelectionSelectionAliasSelectionFieldaliasFieldNamealiasSelection SelectionselectionArgumentsselectionPosition selectionRec ArgumentsArgument argumentValueargumentOriginargumentPositionArgumentOriginVARIABLEINLINE RawSelectionRawSelectionSetRawSelectionFieldInlineFragmentSpreadRawAliasrawAliasPositionrawAliasSelection RawArguments RawArgumentVariableReference FragmentLib RawSelection'rawSelectionArgumentsrawSelectionPositionrawSelectionRecFragment fragmentTypefragmentPositionfragmentSelection Reference referenceNamereferencePositionVariable variableTypeisVariableRequiredvariableTypeWrappersvariablePosition variableValue Operation operationKind operationArgsoperationSelectionoperationPosition OperationKindQUERYMUTATION SUBSCRIPTION RawOperationValidOperationValidVariablesVariableDefinitions JSONResponse responseDataresponseErrorsStreamTResponseStream PublishStreamSubscribeStream ResponseEventPublish SubscribePubEventSubEvent runStreamT StreamState streamEvents streamValue closeStreammapS deriveFetchbase Data.EitherLeftscalarValidatortoScalar pipeLiteraltoken qualifiervariablespaceAndComments1spaceAndCommentssetOf parseNonNullparseMaybeTupleparseAssignmentonType spreadLiteralparseWrappedType enumValuemaybeArgumentsentriesparseOperationparseAnonymousQueryfragment parseDataType parseTypes parseMetalookupGQLConfig internalErrorinternalErrorTinternalUnknownTypeMessageinternalArgumentErrorinternalTypeMismatchEnumRep encodeRep decodeEnumenumTags renderTHTypesProppropKeypropType InputError UnknownFieldInputValidationinputErrorMessage GQLClientclientIDclientConnectionclientSessions ClientSession sessionIdsessionSubscriptionClientIDPure SubResolveT SubResolver MutResolver MutResolveTreplacePairCon __typeName__typeVisibility__typeFingerprintTypeKind INTERFACELISTNON_NULL InputValuenametype' defaultValuecreateInputValueWithFielddeprecationReason isDeprecatedargscreateFieldWith EnumValuecreateEnumValueisEnumOfDeprecationArgsincludeDeprecatedTypekindfields interfacesofType enumValues possibleTypes inputFieldscreateObjectTypeDirectiveLocationINLINE_FRAGMENTFIELDFRAGMENT_DEFINITIONFRAGMENT_SPREADVARIABLE_DEFINITIONSCHEMAFIELD_DEFINITIONARGUMENT_DEFINITION ENUM_VALUEINPUT_FIELD_DEFINITION DirectiveSchemafindType initSchema JSONSchematypes directivesJSONType JSONIntro__schemadecodeIntrospectionDecodeArgumentsConstraintdecodeArguments deriveGQLType declareTypes SubAction RemoveSubAddSubSubErroracceptApolloSubProtocoltoApolloResponse apolloFormatClientRegister connectClientdisconnectClientupdateClientByIDpublishUpdatesremoveClientSubscriptionaddClientSubscriptionMockRes Introspect$fObjectRep->M1f$$fIntrospectTYPEGQL_KIND->WRAPPER[]1$fUnionRep->TYPEM1[] ObjectRepobjectFieldTypes TypeUpdater resolveTypesintrospectOutputTypehiddenRootFields defaultTypes schemaAPIObjectFieldResolvers$fEncoder->WRAPPERExceptT2$fEncoderaUNIONExceptT EncodeSubCon EncodeMutCon EncodeCon encodeQuery encodeMut encodeSub GQLQueryRoot fragments operationinputVariables VariablesparseGQLVALIDATION_MODEWITHOUT_VARIABLESFULL_VALIDATION lookupType lookupField getInputTypeexistsObjectType differKeyscheckNameCollisioncheckForUnknownKeysisEqOrStrictervalidatePartialDocument compileExp compileDecoperationTypesvalidateFragments getFragmentcastFragmentType resolveSpread validateEnumvalidateInputValuevalidateArgumentslookupUnionTypeslookupFieldAsSelectionSetlookupSelectionFieldvalidateSelectionSetresolveOperationVariablesvalidateRequest RootResCon byteStringIOstatelessResolverstreamResolverstatefulResolver fullSchema compileSyntax validateWithversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName