https://github.com/obsidiansystems/dependent-sum-template
Template Haskell code to generate instances of classes in some package
https://github.com/obsidiansystems/dependent-sum-template
haskell template-haskell
Last synced: about 1 month ago
JSON representation
Template Haskell code to generate instances of classes in some package
- Host: GitHub
- URL: https://github.com/obsidiansystems/dependent-sum-template
- Owner: obsidiansystems
- Created: 2018-09-28T05:17:55.000Z (over 6 years ago)
- Default Branch: develop
- Last Pushed: 2025-01-18T20:45:22.000Z (4 months ago)
- Last Synced: 2025-03-25T07:02:00.351Z (2 months ago)
- Topics: haskell, template-haskell
- Language: Haskell
- Homepage:
- Size: 84 KB
- Stars: 1
- Watchers: 19
- Forks: 7
- Open Issues: 2
-
Metadata Files:
- Readme: ReadMe.md
- Changelog: ChangeLog.md
Awesome Lists containing this project
README
dependent-sum-template [](https://travis-ci.org/obsidiansystems/dependent-sum-template) [](http://hackage.haskell.org/package/dependent-sum-template)
==============This library defines [Template Haskell](https://downloads.haskell.org/ghc/latest/docs/users_guide/exts/template_haskell.html) functions for deriving the `GEq`, `GCompare`, `GShow`, and `GRead` functions from the [`some`](https://hackage.haskell.org/package/some) library.
- `GEq tag` is similar to an `Eq` instance for `tag a` except that with `geq`, values of types `tag a` and `tag b` may be compared, and in the case of equality, evidence that the types `a` and `b` are equal is provided.
- `GCompare tag` is similar to the above for `Ord`, and provides `gcompare`, giving a `GOrdering` that gives similar evidence of type equality when values match.
- `GShow tag` means that `tag a` has (the equivalent of) a `Show` instance.
- `GRead tag` means that `tag a` has (the equivalent of) a `Read` instance.