hobbits-1.2.1: A library for canonically representing terms with binding

Copyright(c) 2011 Edwin Westbrook, Nicolas Frisby, and Paul Brauner
LicenseBSD3
Maintaineremw4@rice.edu
Stabilityexperimental
PortabilityGHC
Safe HaskellNone
LanguageHaskell98

Data.Binding.Hobbits.QQ

Description

Defines a quasi-quoter for writing patterns that match the bodies of Mb multi-bindings. Uses the haskell-src-exts parser. [nuP| P ] defines a pattern that will match a multi-binding whose body matches P. Any variables matched by P will remain inside the binding; thus, for example, in the pattern [nuP| x |], x matches the entire multi-binding.

Examples:

case (nu Left) of [nuP| Left x |] -> x  ==  nu id
clP| P |
does the same for the Cl type, and [clNuP| P |] works for both simultaneously: Cl (Mb ctx a).

Synopsis

Documentation

nuP :: QuasiQuoter Source

Quasi-quoter for patterns that match over Mb

clP :: QuasiQuoter Source

Quasi-quoter for patterns that match over Cl, built using clKit

clNuP :: QuasiQuoter Source

Quasi-quoter for patterhs that match over Cl (Mb ctx a)