ermine-0.6: Ermine

Copyright(c) Edward Kmett, Dan Doel 2012-2013
LicenseBSD3
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Ermine.Builtin.Term

Description

Smart builders for convenient building of terms.

Synopsis

Documentation

lam :: Eq v => Binder v [Pattern t] -> Term t v -> Term t v Source

dataCon :: Fixity -> String -> String -> Type Void Void -> Term t v Source

Construct a builtin term DataCon for a given global in the "ermine" package

let_ :: Eq v => Binder v [Binding t v] -> Term t v -> Term t v Source

explicit :: t -> [PreBody t v] -> PreBinding t v Source

bindings :: Eq v => [(v, PreBinding t v)] -> Binder v [Binding t v] Source

data PreBinding t v Source

Constructors

PreBinding Rendering (BindingType t) [PreBody t v] 

finalizeBinding :: Eq v => [v] -> PreBinding t v -> Binding t v Source

data PreBody t v Source

Constructors

PreBody (Binder v [Pattern t]) (Guarded (Term t v)) (Binder v [Binding t v]) 

body :: Binder v [Pattern t] -> Term t v -> Binder v [Binding t v] -> PreBody t v Source

gbody :: Binder v [Pattern t] -> [(Term t v, Term t v)] -> Binder v [Binding t v] -> PreBody t v Source

finalizeBody :: Eq v => [v] -> PreBody t v -> Body t v Source