symantic-base: Basic symantic combinators for Embedded Domain-Specific Languages (EDSL)
This is a work-in-progress collection of basic tagless-final combinators, along with some advanced utilities to exploit them.
Symantic.Classesgathers commonly used tagless-final combinators (the syntax part of symantics).Symantic.Datainterprets combinators as data constructors enabling to pattern-match on combinators while keeping their extensibility.Symantic.Deriveto give a default value to combinators which avoids boilerplate code when implementing combinators for an interpreter is factorizable.Symantic.SharingObserverinterprets combinators to observeletdefinitions at the host language level (Haskell), effectively turning infinite values into finite ones, which is useful for example to inspect and optimize recursive grammars. Inspired by Andy Gill's Type-safe observable sharing in Haskell. For an example, see symantic-parser.Symantic.Reifyenables 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.Viewerinterprets combinators as human-readable text.Symantic.ADTenables to derive reciprocal functions between algebraic data type constructors andEithers of tuples.Symantic.CurryNgathers utilities for currying or uncurrying tuples of size greater or equal to two.Symantic.Fixitygathers utilities for parsing or viewing infix, prefix and postfix combinators.
Modules
[Index] [Quick Jump]
Downloads
- symantic-base-0.4.0.20211106.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
| Versions [RSS] | 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.4.0.20211106, 0.5.0.20221211 |
|---|---|
| Change log | ChangeLog.md |
| Dependencies | base (>=4.10 && <5), containers, hashable, template-haskell, transformers, unordered-containers [details] |
| Tested with | ghc ==8.10.4 |
| 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 2022-02-12T02:10:54Z |
| Distributions | NixOS:0.5.0.20221211 |
| Reverse Dependencies | 2 direct, 1 indirect [details] |
| Downloads | 1168 total (12 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating | |
| Status | Docs uploaded by user Build status unknown [no reports yet] |