symantic-base: Basic symantics combinators for Embedded Domain-Specific Languages (EDSL)

[ agpl, data-structures, library ] [ Propose Tags ] [ Report a vulnerability ]

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 Haskell let 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 and Eithers 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.

Downloads

Maintainer's Corner

Package maintainers

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 2021-10-28T00:21:02Z
Distributions NixOS:0.5.0.20221211
Reverse Dependencies 2 direct, 1 indirect [details]
Downloads 1040 total (29 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]