pure icon indicating copy to clipboard operation
pure copied to clipboard

A verified compiler for a lazy functional language

Results 43 pure issues
Sort by recently updated
recently updated
newest added

Add an `Annot` form to `cexp` as follows: ``` annot = Inline mlstring | ... cexp = ... | Annot annot cexp ``` This should desugar as follows: `exp_of (Annot...

Extend the parser to cope with Haskell-line inlining annotations. We should mirror the syntax described [here](https://wiki.haskell.org/Inlining_and_Specialisation) as much as possible.

The inliner should act on user annotations specifying inlining locations.

Augment inlining relation to handle `letrec`s in memory, and inline them by unrolling loops.

Currently `Case` desugars to a series of nested `let` expressions, e.g.: ``` exp_of (case x = e of C a b c -> k) => let x = exp_of e...

enhancement

**Define TypeClassLang, a new source language with type classes.** TypeClassLang should have both typed and untyped variants - i.e. it can be in either "mode". This could be implemented by...

**Redirect parsing to target TypeClassLang** Aside from PureLang's existing constructs, this will need to handle: - `class` and `instance` declarations - contexts/type class constraints in types - TypeClassLang's new top-level...

The compiler generates some `Delay`s that are very simple. There ought to be a pass in EnvLang that does this: ``` Delay (Var v) --> Box v ``` This issue...

enhancement
back end

When testing compiler modifications we generally don't want to wait for a verified binary to be compiled in-logic. This issue is about creating an unverified binary pipeline. The idea is...

enhancement

The top-level result for TypeClassLang should state: - given a well-annotated TypeClassLang program - there should be a valid translation to a PureLang program - which is itself well-typed (and...