used to be something more ambitious, cut scope to just a simple compiler for thesis project
Stars
17
Forks
0
Watchers
17
Open Issues
7
Overall repository health assessment
No package.json found
This might not be a Node.js project
159
commits
add bool literals in surface language, and other minor stuff
a207cecView on GitHubPretty: instead of ad-hoc `instance Render [Foo]` per-`Foo` (especially annoying when there is also `With metadata Foo` and so on), add a `listSeparator` method each `Foo` can use to customize how lists of it are rendered, and define a single `instance Render a => Render [a]` based on that
77a6ddbView on GitHubAllow the LHS of a call to be an expression (instead of just a name). That was /almost/ easy...
e2213a1View on GitHub{Name,Type}: keep a stack of metadata for better robustness, track it at finer-grain in function signatures, other minor refactoring
7658088View on GitHubsupport writing function and unit types in the source language, and do some pretty significant surgery on `module Type`...
f6d5781View on GitHubadd a separate `Type` node type to the AST so we also get proper location info for name lookup errors in signatures
0faa43fView on GitHubType: add location/metadata to errors in the same way as `Name`
f81f64aView on GitHubName: report errors with metadata (i.e., locations); also rename the type variable for annotations to `metadata` everywhere in the project
865f36aView on GitHubmake `resolvePrecedences` work again, fix a couple of infinite loops, and assorted minor cleanups
ac10093View on GitHubadd annotations (source locations) to AST and parser and make everything compile. this was way too much work... TODO: `AST.resolvePrecedences` is still stubbed out
1599bb9View on GitHubfor posterity -- I tried to make the AST generic over an arbitrary Functor `f`, and it's kinda nice and mostly works, except `deriving` can't handle it (typical), and I don't /think/ it actually makes sense -- maybe you could instantiate it to `Either TypeError` for more fault-tolerance, or something? but for now let's keep things simple and specialize it to just annotations
37d27beView on GitHubToken: reimplement using `lexer-applicative`. it... just works?
a3ecacaView on GitHub