hackett
hackett copied to clipboard
WIP implementation of a Haskell-like Lisp in Racket
The `deftech` form for pattern matching is missing.
Some macros, and specifically the `mod` macro in the Module/Functor system @iitalics and I are working on, should do all the elaboration passes themselves, and they should not be part...
This is the solution discussed in https://github.com/lexi-lambda/hackett/issues/73#issuecomment-390085946 for a Core-`def` form that's always annotated. This will allow our Module/Functor system to catch these when it partially expands the definitions in...
This PR makes way for other namespaces such as the `module` and `signature` namespaces in the module language @iitalics and I are working on. It splits up the logic into...
This is mostly a direct transliteration of Data.Set from Haskell, including many (but not all) of the tests. Also includes: * An implementation of the `Ord` typeclass * A simple...
Similar to how `:` declarations work in Typed Racket or how `id :: type` declarations work in Haskell, I want to be able to separate definitions from their type annotations...
Rigid variables can escape their scope: ```racket #lang hackett (def weird (λ (x) (: (λ (y) (if True x y)) (∀ (A) (-> A A))))) ;;; > (#:type weird) :...
Sam Caldwell built a ~1000 line program in Hackett that takes 25 seconds to expand. I spent some time profiling the expansion process and thought I'd share the results, though...
## Acknowledgement This proposal is inspired by a presentation on [Typer](http://complogic.cs.mcgill.ca/workshop17/monnier.html) I recently saw at McGill University's 2017 Programming Languages Workshop. There doesn't seem to be any information on the...
The git history should be a lot nicer now.