h*=7      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~1.0.0.3 Toshio Ito  Safe-Inferred"  greskell-core)Types that have an intrinsic type ID for gsonType field. greskell-core Type ID for gsonType. greskell-core greskell-core greskell-core greskell-core greskell-core greskell-coreMap to "g:Double". greskell-core greskell-core greskell-core2Map to "gx:Byte". Note that Java's Byte is signed. Toshio Ito  Safe-Inferred"<   greskell-coreWrapper for "typed JSON object" introduced in GraphSON version 2. See 9http://tinkerpop.apache.org/docs/current/dev/io/#graphson=This data type is useful for encoding/decoding GraphSON text.Note that encoding of the "g:Map" type is inconsistent between GraphSON v1 and v2, v3. To handle the encoding, use Data.Greskell.GMap. greskell-coreType ID, corresponding to @type field. greskell-coreValue, correspoding to @value field. greskell-core Create a  without . greskell-core Create a  with its type ID.  greskell-core Create a  with the given type ID.  greskell-coreParse  GraphSON v, but it checks . If  is  or it's not equal to , the  fails. greskell-coreNote: this function is not exported because I don't need it for now. If you need this function, just open an issue.Like  8, but this handles parse errors in a finer granularity. If the given + is not a typed JSON object, it returns . If the given  is a typed JSON object but it fails to parse the "@value" field, the  fails. If the given  is a typed JSON object but the "@type" field is not equal to the  of type v, the  fails.Otherwise (if the given  is a typed JSON object with valid "@type" and "@value" fields,) it returns . greskell-core If the given  is a typed JSON object,  field of the result is . Otherwise, the given  is directly parsed into , and  is . greskell-coreIf  is , the ( is encoded as a typed JSON object. If  is , the  is directly encoded. greskell-core  "Aeson Value with GraphSON wrappers Toshio Ito  Safe-Inferred<  greskell-core without the top-level  wrapper. greskell-core An Aeson  wrapped in  wrapper type. Basically this type is the Haskell representaiton of a GraphSON-encoded document.9This type is used to parse GraphSON documents. See also   class. greskell-core Create a  without "@type" field. greskell-core Create a  with the given "@type" field. greskell-core Remove all  wrappers recursively from . greskell-coreRemove the top-level  wrapper, but leave other wrappers as-is. The remaining wrappers are reconstructed by  to make them into . greskell-coreGet the   from . greskell-coreGet the  field from . greskell-core Reconstruct  from &. It preserves all GraphSON wrappers. greskell-coreParse  wrappers recursively in , making it into . greskell-core"@type" field.  data type for g:Map Toshio Ito  Safe-Inferred "9:;e& greskell-coreHaskell representation of  Map.Entry type."Basically GraphSON encodes Java's  Map.Entry type as if it were a Map with a single entry. Thus its encoded form is either a JSON object or a flattened key-values, as explained in +.In old versions of TinkerPop,  Map.Entry= is encoded as a JSON object with "key" and "value" fields.  instance of &# supports this format as well, but  instance doesn't support it.+ greskell-coreHaskell representation of g:Map type.GraphSON v1 and v2 encode Java Map type as a JSON Object, while GraphSON v3 encodes it as an array of flattened keys and values (like /.) +$ type handles both encoding schemes.type c!: container type for a map (e.g.    and ).type k: key of the map.type v: value of the map.- greskell-coreIf %, the map is encoded as an array. If !, it's encoded as a JSON Object.. greskell-coreMap implementation./ greskell-coreJSON encoding of a map as an array of flattened key-value pairs. instance of this type encodes the internal map as an array of keys and values. 2 instance of this type parses that flattened map.type c!: container type for a map (e.g.    and ).type k: key of the map.type v: value of the map. greskell-core6Parse a flattened key-values to an associative Vector.2 greskell-coreGeneral parser for /.3 greskell-coreGeneral parser for +.4 greskell-core Get the map implementation from +.5 greskell-coreGeneral parser for &.6 greskell-coreGet the key-value pair from &.7 greskell-coreCreate + that has the single &.8 greskell-core Deconstruct + into a list of &s.9 greskell-core3Examples of using this module. See the source. The ) of the output is the testee, while the  is the expectation.: greskell-coreMap to "g:Map".< greskell-coreUse 2.= greskell-coreMap to "g:Map".? greskell-coreUse 3.A greskell-coreUse 5.B greskell-coreMap to "g:Map".2 greskell-core key parser greskell-core value parser greskell-core%input vector of flattened key-values.3 greskell-core key parser greskell-core value parser greskell-core object parser greskell-core%input object or flattened key-values.5 greskell-core key parser greskell-core value parser greskell-core$input object or flattened key-values/012+,-.4783&'()*659/012+,-.4783&'()*659Encoding and decoding GraphSON Toshio Ito  Safe-Inferred"<'T greskell-core#Types that can be constructed from . This is analogous to  class.Instances of basic types are implemented based on the following rule.Simple scalar types (e.g.  and ): use V.List-like types (e.g. [],  and  ): use W.Map-like types (e.g.  and ): parse into + first, then unwrap the + wrapper. That way, all versions of GraphSON formats are handled properly.Trivial wrapper types (e.g. ): just parse the item inside.7Other types: see the individual instance documentation. Note that  does not have T? instance. This is intentional. As stated in the document of  , using  in greskell is an error in most cases. To prevent you from using ,  (and thus  ) don't have T instances.V greskell-coreUnwrap the given  with ", and just parse the result with .Useful to implement T instances for scalar types.W greskell-coreExtract   from the given 4, parse the items in the array, and gather them by .Useful to implement T instances for  types.X greskell-coreParse  into T.Y greskell-core Like Aeson's  , but for T.Z greskell-coreImplementation of  based on U . The input  is first converted to &, and it's parsed to the output type.[ greskell-core3Examples of using this module. See the source. The ) of the output is the testee, while the  is the expectation.\ greskell-coreFor any input , U returns (). For example, you can use it to ignore data you get from the Gremlin server.^ greskell-coreCall ! to remove all GraphSON wrappers._ greskell-core` greskell-corea greskell-coreTry , then .b greskell-coreParse  into .c greskell-coreFirst convert to  with  key, and convert to .g greskell-coreUse 5.h greskell-coreUse 3.i greskell-coreUse 2.j greskell-corek greskell-corel greskell-corem greskell-coren greskell-coreo greskell-corep greskell-coreq greskell-corer greskell-cores greskell-coret greskell-corew greskell-core{ greskell-coreFirst convert to , and convert to .  TUXVWYZ[  TUXVWYZ[-Conversion from Object to Iterator in Gremlin Toshio Ito  Safe-Inferred+ greskell-core,Types that are converted to an iterator by org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils.asIterator method. In fact, that method can convert any type to an iterator, but greskell limits types to which the conversion is applicable.#Associated with this type-class is . % type family is association of type a% and the type of its item when type a is converted to an iterator. rule of thumb:Iterator and Iterable types like List, Stream and GraphTraversal& are converted to their element types.Map type is converted to its  Map.Entry. In greskell,  Map.Entry is expressed as &.(Other types are converted to themselves.Caveat:Because Haskell's  is [Char], IteratorItem String returns , which is incorrect. Use  if you want to deal with String s in Gremlin. greskell-core"Low-level Gremlin script data type Toshio Ito  Safe-Inferred"7 greskell-coreSomething that can convert to . greskell-core!type of return value by Greskell. greskell-coreGremlin expression of type a. is essentially just a piece of Gremlin script with a phantom type. The type a represents the type of data that the script is supposed to evaluate to. and  instances compare Gremlin scripts, NOT the values they evaluate to. greskell-coreUnsafely create a ? of arbitrary type. The given Gremlin script is printed as-is. greskell-coreSame as , but it takes lazy . greskell-coreCreate a String literal in Gremlin script. The content is automatically escaped. greskell-coreBoolean true literal. greskell-coreBoolean false literal. greskell-core List literal. greskell-coreMake a list with a single object. Useful to prevent the Gremlin Server from automatically iterating the result object. greskell-core1Arbitrary precision number literal, like "123e8". greskell-coreAeson  literal. Note that  does not distinguish integers from floating-point numbers, so  function may format an integer as a floating-point number. To ensure formatting as integers, use . greskell-coreInteger literal as  type. greskell-core literal as  type. greskell-coreInteger literal as  type. greskell-core&Create a readable Gremlin script from . greskell-coreSame as  except that this returns lazy . greskell-coreUnsafely create a 9 that calls the given function with the given arguments. greskell-coreUnsafely create a  that calls the given object method call with the given target and arguments. greskell-core3Examples of using this module. See the source. The ) of the output is the testee, while the  is the expectation. greskell-coreMonoidal operations on  assumes String operations in Gremlin.  is the empty String, and  is String concatenation. greskell-coreSemigroup operator  on  assumes String concatenation on Gremlin. greskell-core?Floating-point number literals and numeric operation in Gremlin greskell-core1Integer literals and numeric operation in Gremlin greskell-core"Unsafely convert the phantom type. greskell-coreSame as & except for the input and output type. greskell-core It's just . greskell-coreGremlin script greskell-coreGremlin script greskell-core function name greskell-core arguments greskell-core!return value of the function call greskell-core target object greskell-core method name greskell-core arguments greskell-corereturn value of the method call   !"#$%&'()*+,-./012334567789::;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\] ^_`abcCdefghijklmnopqrstuvwxyz{|}~ C       b   ,greskell-core-1.0.0.3-JmIukfdJqbW70BUgRXhKdeData.Greskell.GraphSONData.Greskell.GraphSON.GValueData.Greskell.GMapData.Greskell.AsIteratorData.Greskell.Greskell greskell-core$Data.Greskell.GraphSON.GraphSONTypedData.Greskell.GraphSON.Core FromGraphSONData.MapMap AsIterator$aeson-2.2.3.0-4E5TuKYso2bIlU0YQguhqBData.Aeson.Types.InternalParser GraphSONTyped gsonTypeForGraphSONgsonType gsonValuenonTypedGraphSON typedGraphSONtypedGraphSON'parseTypedGraphSON GValueBodyGObjectGArrayGStringGNumberGBoolGNullGValueunGValuenonTypedGValue typedGValue' unwrapAll unwrapOne gValueBody gValueType$fToJSONGValueBody$fToJSONGValue$fFromJSONGValue$fHashableGValueBody$fHashableGValue$fEqGValueBody$fGenericGValueBody$fShowGValueBody $fEqGValue$fGenericGValue $fShowGValue GMapEntry gmapEntryFlat gmapEntryKeygmapEntryValueGMapgmapFlat gmapValue FlattenedMapunFlattenedMapparseToFlattenedMap parseToGMapunGMapparseToGMapEntry unGMapEntry singletontoListexamples$fGraphSONTypedFlattenedMap$fToJSONFlattenedMap$fFromJSONFlattenedMap$fGraphSONTypedGMap $fToJSONGMap$fFromJSONGMap$fToJSONGMapEntry$fFromJSONGMapEntry$fGraphSONTypedGMapEntry $fEqGMapEntry$fFoldableGMapEntry$fFunctorGMapEntry$fOrdGMapEntry$fShowGMapEntry$fTraversableGMapEntry$fEqGMap$fFoldableGMap $fFunctorGMap $fShowGMap$fTraversableGMap$fEqFlattenedMap$fFoldableFlattenedMap$fFunctorFlattenedMap$fOrdFlattenedMap$fShowFlattenedMap$fTraversableFlattenedMap parseGraphSONparseUnwrapAllparseUnwrapList parseEither.:parseJSONViaGValue$fFromGraphSON()$fFromGraphSONUUID$fFromGraphSONValue$fFromGraphSONLast$fFromGraphSONFirst$fFromGraphSONEither$fFromGraphSONMaybe$fFromGraphSONKeyMap$fFromGraphSONIntMap$fFromGraphSONMap$fFromGraphSONHashMap$fFromGraphSONGMapEntry$fFromGraphSONGMap$fFromGraphSONFlattenedMap$fFromGraphSONAny$fFromGraphSONAll$fFromGraphSONProduct$fFromGraphSONSum$fFromGraphSONDual$fFromGraphSONWrappedMonoid$fFromGraphSONLast0$fFromGraphSONFirst0$fFromGraphSONMax$fFromGraphSONMin$fFromGraphSONIdentity$fFromGraphSONHashSet$fFromGraphSONSet$fFromGraphSONNonEmpty$fFromGraphSONSeq$fFromGraphSONVector$fFromGraphSONList$fFromGraphSONKey$fFromGraphSONIntSet$fFromGraphSONScientific$fFromGraphSONWord64$fFromGraphSONWord32$fFromGraphSONWord16$fFromGraphSONWord8$fFromGraphSONWord$fFromGraphSONRatio$fFromGraphSONNatural$fFromGraphSONInteger$fFromGraphSONInt64$fFromGraphSONInt32$fFromGraphSONInt16$fFromGraphSONInt8$fFromGraphSONFloat$fFromGraphSONDouble$fFromGraphSONBool$fFromGraphSONText$fFromGraphSONText0$fFromGraphSONInt$fFromGraphSONGValue IteratorItem$fAsIteratorMaybe$fAsIteratorIntMap$fAsIteratorMap$fAsIteratorHashMap$fAsIteratorGMapEntry$fAsIteratorGMap$fAsIteratorNonEmpty$fAsIteratorIntSet$fAsIteratorSet$fAsIteratorSeq$fAsIteratorHashSet$fAsIteratorVector$fAsIteratorList$fAsIteratorScientific$fAsIteratorWord64$fAsIteratorWord32$fAsIteratorWord16$fAsIteratorWord8$fAsIteratorWord$fAsIteratorRatio$fAsIteratorNatural$fAsIteratorInteger$fAsIteratorInt64$fAsIteratorInt32$fAsIteratorInt16$fAsIteratorInt8$fAsIteratorFloat$fAsIteratorDouble$fAsIteratorChar$fAsIteratorBool$fAsIteratorText$fAsIteratorText0$fAsIteratorInt$fAsIterator() ToGreskellGreskellReturn toGreskellGreskellunsafeGreskellunsafeGreskellLazystringtruefalselistsinglenumbervaluevalueIntgvalue gvalueInt toGremlin toGremlinLazy unsafeFunCallunsafeMethodCall$fMonoidGreskell$fSemigroupGreskell$fFractionalGreskell $fNumGreskell$fFunctorGreskell$fIsStringGreskell$fToGreskellGreskell $fEqGreskell $fOrdGreskell$fShowGreskell$fGraphSONTypedEither$fGraphSONTypedIntMap$fGraphSONTypedMap$fGraphSONTypedSet$fGraphSONTypedIntSet$fGraphSONTypedScientific$fGraphSONTypedSeq$fGraphSONTypedVector$fGraphSONTypedInt8base GHC.MaybeNothingparseTypedGraphSON'Value Data.EitherLeftRight$fFromJSONGraphSONJust$fToJSONGraphSON$fHashableGraphSONData.Aeson.Types.ToJSONtoJSONData.Aeson.Types.FromJSONFromJSONToJSON2unordered-containers-0.2.20-JvVAVexwiAhEoWrNNoQmXrData.HashMap.InternalHashMapghc-prim GHC.TypesTrueFalse parseToAVec Data.TuplefstsndInt text-2.0.2Data.Text.InternalText&vector-0.13.2.0-DQK4IcBTIXrBPst3F8RMZq Data.VectorVectorcontainers-0.6.7Data.Set.InternalSetData.Map.InternalData.Functor.IdentityIdentityChar parseJSON GHC.IsListfromListIsListData.Aeson.KeyMapKeyMapData.Aeson.KeyKeyGHC.BaseString GHC.ClassesEqOrdData.Text.Internal.LazyNumbermemptymappend<>id