Copyright | disco team and contributors |
---|---|
License | BSD-3-Clause |
Maintainer | byorgey@gmail.com |
Safe Haskell | None |
Language | Haskell2010 |
Desugaring the typechecked surface language to a (still typed) simpler language.
Synopsis
- runDesugar :: Sem '[Fresh] a -> a
- desugarDefn :: Member Fresh r => Defn -> Sem r DTerm
- desugarTerm :: Member Fresh r => ATerm -> Sem r DTerm
- desugarProperty :: Member Fresh r => AProperty -> Sem r DTerm
- desugarBranch :: Member Fresh r => ABranch -> Sem r DBranch
- desugarGuards :: Member Fresh r => Telescope AGuard -> Sem r (Telescope DGuard)
Running desugaring computations
runDesugar :: Sem '[Fresh] a -> a Source #
Run a desugaring computation.
Programs, terms, and properties
desugarDefn :: Member Fresh r => Defn -> Sem r DTerm Source #
Desugar a definition (consisting of a collection of pattern clauses with bodies) into a core language term.
desugarProperty :: Member Fresh r => AProperty -> Sem r DTerm Source #
Desugar a property by wrapping its corresponding term in a test frame to catch its exceptions & convert booleans to props.