{"moduleDefinition":{"range":[1,1,5,6],"value":{"type":"normal","normal":{"moduleName":{"range":[1,8,1,32],"value":["Graphql","OptionalArgument"]},"exposingList":{"range":[1,33,5,6],"value":{"type":"explicit","explicit":[{"range":[2,7,2,27],"value":{"type":"typeexpose","typeexpose":{"name":"OptionalArgument","open":[2,23,2,27]}}},{"range":[3,7,3,16],"value":{"type":"function","function":{"name":"fromMaybe"}}},{"range":[4,7,4,10],"value":{"type":"function","function":{"name":"map"}}}]}}}}},"imports":[],"declarations":[{"range":[48,1,51,11],"value":{"type":"typedecl","typedecl":{"documentation":null,"name":{"range":[48,6,48,22],"value":"OptionalArgument"},"generics":[{"range":[48,23,48,24],"value":"a"}],"constructors":[{"range":[49,7,49,16],"value":{"name":{"range":[49,7,49,14],"value":"Present"},"arguments":[{"range":[49,15,49,16],"value":{"type":"generic","generic":{"value":"a"}}}]}},{"range":[50,7,50,13],"value":{"name":{"range":[50,7,50,13],"value":"Absent"},"arguments":[]}},{"range":[51,7,51,11],"value":{"name":{"range":[51,7,51,11],"value":"Null"},"arguments":[]}}]}}},{"range":[56,1,63,19],"value":{"type":"function","function":{"documentation":null,"signature":{"range":[56,1,56,42],"value":{"name":{"range":[56,1,56,10],"value":"fromMaybe"},"typeAnnotation":{"range":[56,13,56,42],"value":{"type":"function","function":{"left":{"range":[56,13,56,20],"value":{"type":"typed","typed":{"moduleNameAndName":{"range":[56,13,56,18],"value":{"moduleName":[],"name":"Maybe"}},"args":[{"range":[56,19,56,20],"value":{"type":"generic","generic":{"value":"a"}}}]}}},"right":{"range":[56,24,56,42],"value":{"type":"typed","typed":{"moduleNameAndName":{"range":[56,24,56,40],"value":{"moduleName":[],"name":"OptionalArgument"}},"args":[{"range":[56,41,56,42],"value":{"type":"generic","generic":{"value":"a"}}}]}}}}}}}},"declaration":{"range":[57,1,63,19],"value":{"name":{"range":[57,1,57,10],"value":"fromMaybe"},"arguments":[{"range":[57,11,57,21],"value":{"type":"var","var":{"value":"maybeValue"}}}],"expression":{"range":[58,5,63,19],"value":{"type":"case","case":{"cases":[{"pattern":{"range":[59,9,59,19],"value":{"type":"named","named":{"qualified":{"moduleName":[],"name":"Just"},"patterns":[{"range":[59,14,59,19],"value":{"type":"var","var":{"value":"value"}}}]}}},"expression":{"range":[60,13,60,26],"value":{"type":"application","application":[{"range":[60,13,60,20],"value":{"type":"functionOrValue","functionOrValue":{"moduleName":[],"name":"Present"}}},{"range":[60,21,60,26],"value":{"type":"functionOrValue","functionOrValue":{"moduleName":[],"name":"value"}}}]}}},{"pattern":{"range":[62,9,62,16],"value":{"type":"named","named":{"qualified":{"moduleName":[],"name":"Nothing"},"patterns":[]}}},"expression":{"range":[63,13,63,19],"value":{"type":"functionOrValue","functionOrValue":{"moduleName":[],"name":"Absent"}}}}],"expression":{"range":[58,10,58,20],"value":{"type":"functionOrValue","functionOrValue":{"moduleName":[],"name":"maybeValue"}}}}}}}}}}},{"range":[68,1,78,17],"value":{"type":"function","function":{"documentation":null,"signature":{"range":[68,1,68,59],"value":{"name":{"range":[68,1,68,4],"value":"map"},"typeAnnotation":{"range":[68,7,68,59],"value":{"type":"function","function":{"left":{"range":[68,7,68,15],"value":{"type":"function","function":{"left":{"range":[68,8,68,9],"value":{"type":"generic","generic":{"value":"a"}}},"right":{"range":[68,13,68,14],"value":{"type":"generic","generic":{"value":"b"}}}}}},"right":{"range":[68,19,68,59],"value":{"type":"function","function":{"left":{"range":[68,19,68,37],"value":{"type":"typed","typed":{"moduleNameAndName":{"range":[68,19,68,35],"value":{"moduleName":[],"name":"OptionalArgument"}},"args":[{"range":[68,36,68,37],"value":{"type":"generic","generic":{"value":"a"}}}]}}},"right":{"range":[68,41,68,59],"value":{"type":"typed","typed":{"moduleNameAndName":{"range":[68,41,68,57],"value":{"moduleName":[],"name":"OptionalArgument"}},"args":[{"range":[68,58,68,59],"value":{"type":"generic","generic":{"value":"b"}}}]}}}}}}}}}}},"declaration":{"range":[69,1,78,17],"value":{"name":{"range":[69,1,69,4],"value":"map"},"arguments":[{"range":[69,5,69,14],"value":{"type":"var","var":{"value":"transform"}}},{"range":[69,15,69,21],"value":{"type":"var","var":{"value":"option"}}}],"expression":{"range":[70,5,78,17],"value":{"type":"case","case":{"cases":[{"pattern":{"range":[71,9,71,18],"value":{"type":"named","named":{"qualified":{"moduleName":[],"name":"Present"},"patterns":[{"range":[71,17,71,18],"value":{"type":"var","var":{"value":"a"}}}]}}},"expression":{"range":[72,13,72,34],"value":{"type":"application","application":[{"range":[72,13,72,20],"value":{"type":"functionOrValue","functionOrValue":{"moduleName":[],"name":"Present"}}},{"range":[72,21,72,34],"value":{"type":"parenthesized","parenthesized":{"range":[72,22,72,33],"value":{"type":"application","application":[{"range":[72,22,72,31],"value":{"type":"functionOrValue","functionOrValue":{"moduleName":[],"name":"transform"}}},{"range":[72,32,72,33],"value":{"type":"functionOrValue","functionOrValue":{"moduleName":[],"name":"a"}}}]}}}}]}}},{"pattern":{"range":[74,9,74,15],"value":{"type":"named","named":{"qualified":{"moduleName":[],"name":"Absent"},"patterns":[]}}},"expression":{"range":[75,13,75,19],"value":{"type":"functionOrValue","functionOrValue":{"moduleName":[],"name":"Absent"}}}},{"pattern":{"range":[77,9,77,13],"value":{"type":"named","named":{"qualified":{"moduleName":[],"name":"Null"},"patterns":[]}}},"expression":{"range":[78,13,78,17],"value":{"type":"functionOrValue","functionOrValue":{"moduleName":[],"name":"Null"}}}}],"expression":{"range":[70,10,70,16],"value":{"type":"functionOrValue","functionOrValue":{"moduleName":[],"name":"option"}}}}}}}}}}}],"comments":[{"range":[66,1,67,3],"value":"{-| Transform an OptionalArgument value with a given function.\n-}"},{"range":[54,1,55,3],"value":"{-| Convert a `Maybe` to an OptionalArgument.\n-}"},{"range":[16,1,47,3],"value":"{-| This type is used to create values to pass in optional arguments.\n\n      import Api.Enum.Episode as Episode exposing (Episode)\n      import Api.Query as Query\n      import Graphql.Operation exposing (RootQuery)\n      import Graphql.OptionalArgument exposing (OptionalArgument(Null, Present))\n      import Graphql.SelectionSet as SelectionSet exposing (SelectionSet, with)\n\n\n      query : SelectionSet Response RootQuery\n      query =\n          SelectionSet.succeed Response\n              |> with (Query.human { id = \"1004\" } human)\n              |> with (Query.human { id = \"1001\" } human)\n              |> with\n                  (Query.hero\n                      (\\optionals ->\n                          { optionals\n                              | episode = Present Episode.EMPIRE\n                          }\n                      )\n                      hero\n                  )\n\nAn optional argument can be either present, absent, or null, so using a Maybe does not\nfully capture the GraphQL concept of an optional argument. For example, you could have\na mutation that deletes an entry if a null argument is provided, or does nothing if\nthe argument is absent. See\n[The official GraphQL spec section on null](http://facebook.github.io/graphql/October2016/#sec-Null-Value)\nfor details.\n\n-}"},{"range":[7,1,13,3],"value":"{-|\n\n@docs OptionalArgument\n@docs fromMaybe\n@docs map\n\n-}"}]}