The latest version of symantic-base is 0.5.0.20221211-0.

symantic-base

Version 0.3.0.20211007 revision 0 uploaded by julm.

Package meta

Synopsis
Basic symantics combinators for Embedded Domain-Specific Languages (EDSL)
Description

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.

Author
Julien Moutinho <julm+symantic-base@sourcephile.fr>
Bug reports
https://todo.code.sourcephile.fr/~julm/symantic-base
Category
Data Structures
Copyright
Julien Moutinho <julm+symantic-base@sourcephile.fr>
Homepage
https://git.code.sourcephile.fr/~julm/symantic-base
Maintainer
mailto:~julm/symantic-base@todo.code.sourcephile.fr
Package URL
n/a
Stability
experimental

Components