hCM alternatives and similar packages
Based on the "Data Structures" category.
Alternatively, view hCM alternatives based on common mentions on social networks and blogs.
-
Agda
Agda is a dependently typed programming language / interactive theorem prover. -
vinyl
Extensible Records for Haskell. Pull requests welcome! Come visit us on #vinyl on freenode. -
repa-scalar
High performance, regular, shape polymorphic parallel arrays. -
repa-convert
High performance, regular, shape polymorphic parallel arrays. -
parameterized-utils
A set of utilities for using indexed types including containers, equality, and comparison. -
ethereum-client-haskell
A Haskell version of an Ethereum client -
type-level-sets
Type-level sets for Haskell (with value-level counterparts and various operations) -
justified-containers
Standard containers, with keys that carry type-level proofs of their own presence. -
bytestring-trie
An efficient finite map from (byte)strings to values. -
nonempty-containers
Efficient non-empty variants of containers data types, with full API -
claferIG
Support for reasoning on Clafer models by instantiation and counter example generation. -
igraph
Incomplete Haskell bindings to the igraph library (which is written in C) -
selections
Haskell Package for operating with selections over an underlying functor -
map-syntax
Syntax sugar and explicit semantics for statically defined maps
Collect and Analyze Billions of Data Points in Real Time
Do you think we are missing an alternative of hCM or a related project?
README
hCM
Conceptual modelling support library for Haskell.
Introduction
This library is the result of finding a suitable way how to support conceptual modelling within Haskell programming language in the most simple but smart manner. hCM should allow you to build conceptual model with Haskell freely without any restrictions about selected representation of entities, relationships and model itself.
Advantages gained by applying hCM are:
- Compiler-driven modelling = GHC guides you through implementing conceptual model via writing instances and mandatory functions.
- Visualization = you can generate visualization of model and its instances (DOT format, see Graphviz)
- Verification = correctness of model-implementation consistency is guaranteed by using conceptual model as part of implementation (model-is-a-code)
- Validation = you can validate the conceptual model with domain expert thanks to visualization, instance generation (use QuickCheck's Arbitrary) and easy constraint construction as pure functions
Installation
- Use standard Haskell way with stack.
- Optionally you can use prepared [Makefile](Makefile).
Usage
There is very simple example of trivial model within [app/Example.hs](app/Example.hs) file. For more complex example, try to check hCM-CaseStudy.
If you have used this library and want to share your project, feel free to let me know via issues.
Sharing ideas and reporting bugs is more than welcome as well via issues!
License
This project is licensed under the MIT license - see the [LICENSE](LICENSE) file for more details.
*Note that all licence references and agreements mentioned in the hCM README section above
are relevant to that project's source code only.