Karl Meakin

Results 26 issues of Karl Meakin

Allows `synth_binop` to infer the expected type of the RHS expression given the LHS type and the operator, where possible (ie all cases except for `+` and `Pos`)

Currently, metavars are treated as global to the whole module. This PR changes `elab_module` so that each toplevel definition has its own set of metavars, and metavar solutions do not...

Fixes #471

Adds new `letrec` term. Type-checking is surprisingly easy: * Insert a fresh type variable for each definition * Check each definition's pattern against its type variable * Check each definition's...

Trying to elaborate this term causes a panic: ```fathom match (0 : U32) { 0 => 0, _ => 0 + 0, } ``` ``` thread 'main' panicked at 'not...

We may at some point want to implement lazy evaluation: * I believe it would be necessary to support recursive definitions (https://github.com/yeslogic/fathom/pull/469) * Could make elaboration faster by avoiding unnecessary...

I've submitted some PRs in the past that remove some inefficiencies in the compiler (https://github.com/yeslogic/fathom/pull/427, https://github.com/yeslogic/fathom/pull/426). In those cases, they were obvious performance wins, but in the future we might...

Fathom currently has anonymous product types (records), but no (convenient) way of expressing sum types. # Potential solutions * Do nothing. Encode sum types as dependent records (eg `let Option...

It would be nice to be able to transfer ownership over the backing memory from an owning pointer or collection (eg `Box`, `Vec`, `String`). Currently this requires reallocating (eg with...