listofoptions / Haskell-rules

Haskell Rules is a domain-specific embedded language that allows semantic rules to be expressed as Haskell functions.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Rule DSEL with Examples
Steve Kollmansberger and Martin Erwig (maintained by listofoptions, do not email main contributors!)


1. PREPARATIONS

Requires GHC 8.10 and above

You can start the examples with

cabal repl

Other Haskell compilers/versions not tested. Your mileage may vary. (updated to latest haskell, test suite pending)

2. CORE FILES

The core DSEL files are:

NDSM.hs		Non-deterministic state monad
TypeGU.hs	Generic unification, substitution, and structures
TypeGT.hs	Rule DSEL, including lifting

3. EXAMPLES

TypeFV.hs	Determine if a variable is free in a lambda term
TypeFVSet.hs	Determine the set of free variables in a lambda term
TypeLam.hs	Type inference for lambda calculus
TypeChgTrad.hs	The first (par, arg, def) type change system
TypeChgMin.hs	The second (vchg) type change system
TypeChgPlus.hs	Concrete change suggestions


Supporting file:

TypeChg.hs	Foundation for all type change examples

About

Haskell Rules is a domain-specific embedded language that allows semantic rules to be expressed as Haskell functions.

License:GNU General Public License v3.0


Languages

Language:Haskell 100.0%