symantic-base: Basic symantics combinators for Embedded Domain-Specific Languages (EDSL)
This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.
This is a work-in-progress collection of basic tagless-final combinators, along with some advanced utilities to exploit them.
Symantic.Class
gathers commonly used tagless-final combinators (the syntax part of symantics).Symantic.Data
is an interpreter enabling to pattern-match on combinators, while keeping their extensibility.Symantic.Derive
enables to give a default value to combinators which avoids boilerplate code when implementing combinators for an interpreter is factorizable.Symantic.ObserveSharing
enables to observe Haskelllet
definitions, turning infinite values into finite ones, which is useful to inspect and optimize recursive grammars for example. Inspired by Andy Gill's Type-safe observable sharing in Haskell. For an example, see symantic-parser.Symantic.Reify
enables the lifting to any interpreter of any Haskell functions taking as arguments only polymorphic types (possibly constrained) or functions using such types. Inspired by Oleg Kiselyov's TDPE.hs.Symantic.View
is an interpreter enabling to turn combinators into a human-readable string.Symantic.ADT
enables to derive reciprocal functions between data-constructors andEither
s of tuples.Symantic.CurryN
gathers utilities for currying or uncurrying tuples of size greater or equal to 2.Symantic.Fixity
gathers utilities for parsing or viewing infix, prefix and postfix combinators.
Properties
Versions | 0.0.0.20200708, 0.0.1.20200708, 0.0.2.20200708, 0.1.0.20210703, 0.2.0.20210731, 0.2.0.20210831, 0.3.0.20211007, 0.3.0.20211007, 0.4.0.20211106, 0.5.0.20221211 |
---|---|
Change log | ChangeLog.md |
Dependencies | base (>=4.10 && <5), containers, hashable, template-haskell, transformers, unordered-containers [details] |
License | AGPL-3.0-or-later |
Copyright | Julien Moutinho <julm+symantic-base@sourcephile.fr> |
Author | Julien Moutinho <julm+symantic-base@sourcephile.fr> |
Maintainer | mailto:~julm/symantic-base@todo.code.sourcephile.fr |
Category | Data Structures |
Home page | https://git.code.sourcephile.fr/~julm/symantic-base |
Bug tracker | https://todo.code.sourcephile.fr/~julm/symantic-base |
Source repo | head: git clone https://git.code.sourcephile.fr/~julm/symantic-base |
Uploaded | by julm at 2021-10-28T00:20:28Z |
Modules
[Index] [Quick Jump]
Downloads
- symantic-base-0.3.0.20211007.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
Package maintainers
For package maintainers and hackage trustees