symantic-base
Version 0.4.0.20211106 revision 0 uploaded by julm.
Package meta
- Synopsis
- Basic symantic 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.Classes
gathers commonly used tagless-final combinators (the syntax part of symantics).Symantic.Data
interprets combinators as data constructors enabling to pattern-match on combinators while keeping their extensibility.Symantic.Derive
to give a default value to combinators which avoids boilerplate code when implementing combinators for an interpreter is factorizable.Symantic.SharingObserver
interprets combinators to observelet
definitions 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.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.Viewer
interprets combinators as human-readable text.Symantic.ADT
enables to derive reciprocal functions between algebraic data type constructors andEither
s of tuples.Symantic.CurryN
gathers utilities for currying or uncurrying tuples of size greater or equal to two.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