greskell
Haskell binding for Gremlin graph query language
https://github.com/debug-ito/greskell/
| LTS Haskell 24.17: | 2.0.3.3 | 
| Stackage Nightly 2025-10-31: | 2.0.3.3 | 
| Latest on Hackage: | 2.0.3.3 | 
greskell-2.0.3.3@sha256:dba9e99d4fa353746ee41996d1b45c5fdc29d9358f4a30b7ff7ce2bd47654314,7424Module documentation for 2.0.3.3
greskell
Haskell binding for Gremlin query language.
See the package description, or project README.
Author
Toshio Ito [email protected]
Changes
Revision history for greskell
2.0.3.3 – 2025-01-30
- Binder: now newBindproduces an expression like((__v0)), that is, a variable name wrapped with double parens. (see https://github.com/debug-ito/greskell/issues/18 ) While this is basically backward-compatible, it can break a user code if it depends on the internal of theGreskellreturned bynewBind.
- Support ghc-9.12 (base-4.21).
2.0.3.2 – 2024-11-05
- Bump dependency version bounds.
2.0.3.1 – 2024-09-12
- Update dependency version bounds with cabal-plan-bounds. This adds support for new packages, while drops support for old ones.
2.0.3.0 – 2023-02-24
- Add GTraversal.Genmodule (see https://github.com/debug-ito/greskell/issues/15 )
2.0.2.0 – 2023-01-11
- Add oDescandoAscfunctions (Gremlinmodule) ( https://github.com/debug-ito/greskell/pull/14 )
2.0.1.0 – 2022-11-24
- Confirm test with ghc-9.2.5, vector-0.13.0.0 and aeson-2.1.0.0.
- Remove doctests. This is because it’s so difficult to maintain doctests with recent GHCs and cabals.
- doctests have been moved to examplesfunction defined in some modules.
- @ners helped a lot in https://github.com/debug-ito/greskell/pull/12
 
- doctests have been moved to 
- Add the following functions ( https://github.com/debug-ito/greskell/pull/13 )
- gElementMap(- GTraversalmodule)
- toGremlinKeys(- Graphmodule)
 
- Use stylish-haskell to format codes.
2.0.0.0 – 2021-12-28
- BREAKING CHANGE: Now greskell uses aeson-2.0. As a result, now implementation ofData.Aeson.Objecthas been changed fromHashMaptoKeyMap. Some types in greskell (e.g.Binding) directly uses theObjecttype.
- Confirm test with aeson-2.0.2.0,semigroups-0.20,hashable-1.4.0.1,doctest-0.19,doctest-0.20.
- Add showWalkType,showLiftandshowSplitfunctions, but those are only for testing purposes.
- hint-test-suiteis removed. Instead,- typecheck-test-suiteis added, which is more robust and lightweight.
1.2.0.2 – 2021-11-08
- Confirm test with base-4.15.0.0.
1.2.0.1 – 2021-02-11
- Confirm test with doctest-0.18.
1.2.0.0 – 2020-12-29
- Add Logicmodule.
Gremlin module
- Add PLikeclass.
- BREAKING CHANGE Generalize signatures of the following functions
using PLike. You may encounter compile errors if the compiler fails to infer the type.- pEq
- pNeq
- pLt
- pLte
- pGt
- pGte
- pInside
- pOutside
- pBetween
- pWithin
- pWithout
 
GTraversal module
- Add the following functions. (Fix for #10)
- gWhereP1
- gWhereP1'
- gWhereP2
- gWhereP2'
- gMatch
- mPattern
 
- Add the following types.
- MatchPattern
- MatchResult
 
Gremlin module
- Add LabeledPtype.
1.1.0.3 – 2020-06-21
- Confirm test with base-4.14.0.0.
1.1.0.2 – 2020-06-06
- Support doctest-0.17.
1.1.0.1 – 2020-05-30
- Support aeson-1.5.0.0.
1.1.0.0 – 2020-04-26
GTraversal module
- BREAKING CHANGE gFlatMapis now polymorphic about the WalkTypes. UsegFlatMap'For monomorphic version.
- Add the following functions.
- gFlatMap'
- gCoalesce
- gIterate
- gPath
- gPathBy
 
- Document change: Now gProjectis a “Transformation step”, andgUnfoldis an “Accessor step”.
Graph module
- Add the following types.
- Path
- PathEntry
 
- Add the following functions.
- pathToPMap
- makePathEntry
 
Extra module
- Add gWhenEmptyInputfunction.
AsLabel module
- Derive Hashableinstance forAsLabel.
- Add unsafeCastAsLabelfunction.
1.0.1.0 – 2020-04-24
GTraversal module
- Add the following functions.
- gRepeat
- gTimes
- gUntilHead
- gUntilTail
- gEmitHead
- gEmitTail
- gEmitHeadT
- gEmitTailT
- gLoops
- gIs
- gIs'
- gIsP
- gIsP'
- gCyclicPath
- gCyclicPath'
- gSimplePath
- gSimplePath'
- gUnion
- gChoose3
- gConstant
- gLocal
- gBarrier
- gDedup
- gDedupN
- gUnfold
 
- Add the follwing types.
- RepeatUntil
- RepeatEmit
- RepeatPos
- RepeatLabel
 
1.0.0.1 – 2019-12-30
- Confirm test with base-4.13.0.0
1.0.0.0 – 2019-12-27
- Add some test cases to server-behavior-test
- Add PMap and NonEmptyLike modules.
Data.Greskell module
- Export PMap module.
Graph module - Element class and ElementID
- BREAKING CHANGE Now ElementIDis a newtype forGValue. It was an associated type family inElementclass. However, I think there was no point to make it polymorphic.
- BREAKING CHANGE Remove EdgeVertexIDtype family fromEdgeclass.
- BREAKING CHANGE Add ElementDataclass, and set it as a super class ofElement.
- BREAKING CHANGE Type of the ID field for AVertex,AEdgeandAVertexPropertyis nowElementID, notGValue.
- Add unsafeCastElementIDfunction.
- Add ElementPropertyContainertype family toElementclass. It’s necessary forgValueMaptraversal.
Graph module - “reference” model for graph element types
Now the graph element types don’t contain properties. They only have their ID and label (and the value if it’s a VertexProperty). This is because some graph implementation of TinkerPop don’t return properties when it returns graph elements. See #6.
- BREAKING CHANGE Remove avPropertiesfield fromAVertex.
- BREAKING CHANGE Remove aeInVLabel,aeOutVLabel,aeInV,aeOutVandaePropertiesfields fromAEdge.
- BREAKING CHANGE Remove avpPropertiesfield fromAVertexProperty.
- BREAKING CHANGE Move PropertyMapclass,FromGraphSONWithKeyclass,PropertyMapSingletype,PropertyMapListtypes and related functions toGraph.PropertyMapmodule. They are now all deprecated. UsePMapmodule instead.
Graph module - Key for element property
- BREAKING CHANGE Internal of Keyis modified fromGreskell TexttoText, so that it can be an instance ofPMapKeyclass.
- BREAKING CHANGE Add KeyNoValuedata constructor forKeyValuetype.
- Add unsafeCastKeyfunction.
- Add Keystype and related functions.
GTraversal module
- BREAKING CHANGE Change the signature of the following functions
because now ElementIDis a newtype, not a type alias.- sV'
- gV'
- sE'
 
- Add gValueMap,gProjectandgByLfunctions.
- Add LabeledByProjectiontype.
- Add unsafeCastStartandunsafeCastEndfunctions toToGTraversalclass.
Extra module
- BREAKING CHANGE Remove writeAllPropertiesbecausePropertyMapis deprecated.
- Add writeKeyValuesfunction.
- Add writePMapPropertiesfunction.
- Add (<=:>)and(<=?>)operators.
- Re-export property reader functions such as lookupAs.
AsLabel module
- Now SelectedMapis a specialized type alias forPMap.
- BREAKING CHANGE lookup,lookupM,lookupAsandlookupAsMare now re-exports fromPMapmodule, whose signature is more polymorphic than the original ones and have a different exception type.
- BREAKING CHANGE AsLookupExceptionis removed. UsePMapLookupExceptioninstead.
- Make AsLabelan instance ofPMapKey.
- Add IsStringinstance toAsLabel.
0.2.3.1 – 2019-10-02
- Confirm test with semigroups-0.19.1.
0.2.3.0 – 2019-01-01
- Add Extra module.
0.2.2.0 – 2018-11-23
- Add new AsLabelmodule.
GTraversal module
- Add gAs,gSelect1,gSelectN,gSelectBy1,gSelectByN,gOutV,gOutV',gInV,gInV'functions.
Binder module
- Add newAsLabelfunction.
0.2.1.1 – 2018-10-03
- Confirm test with base-4.12.0.0
0.2.1.0 – 2018-08-17
GTraversal module
- Add (<$.>),(<*.>),gLimit,gTail,gSkip,gId,gLabelfunctions.
0.2.0.3 – 2018-07-24
- Confirmed test with doctest-discover-0.2.0.0.
0.2.0.2 – 2018-06-24
- Confirmed test with doctest-0.16.0.
0.2.0.1 – 2018-06-24
- .cabal: Now hint-testflag hasmanual: Truesetting. The hint-test may be sometimes unstable, so the user should be able to disable it in a stable way. See https://github.com/commercialhaskell/stackage/pull/3758
0.2.0.0 – 2018-06-21
- Confirmed test with aeson-1.4.0.0andhint-0.8.0.
Graph module
- 
BREAKING CHANGE: Now AVertex,AEdge,AVertexPropertyare based onGValuetype, instead ofGraphSON Value. This is for taking care of possibly nested GraphSON-encoded values in a generic way.
- 
BREAKING CHANGE: parseOneValue,parseListValues,parseNonEmptyValuesfunctions now requireFromGraphSONconstraint, instead ofFromJSON, because property types ofAVertexetc have changed.
- 
Add Cardinalitytype and its enum instances.
- 
Add KeyValuetype and(=:)operator.
- 
(internal change): PropertyMapGenericis now based onHashMap.Strict.
The top Data.Greskell module
- Re-export GMapandAsIteratormodules.
GTraversal module
- Add gV,gV',gAddE,gAddE',gFrom,gTo,gProperty,gPropertyV,sAddV,sAddV'.
0.1.1.0 – 2018-04-08
- Add Semigroup instance to PropertyMapSingle and PropertyMapList.
- Confirmed test with base-4.11 (with hint-test and server-test disabled)
0.1.0.0 – 2018-03-12
- First version. Released on an unsuspecting world.
