Commit Graph

40 Commits

Author SHA1 Message Date
greg 93309c025e Some work 2018-07-26 00:52:46 -07:00
greg b67512a9e1 Add Infer struct 2018-07-26 00:52:46 -07:00
greg 8e6f605fab Type alias "TypeName" 2018-07-26 00:52:46 -07:00
greg ba4185b0fb Back to including typechecking code in pipeline 2018-07-26 00:52:46 -07:00
greg 7a2a4df297 Clearing out most of the cruft from typechecking 2018-07-26 00:52:46 -07:00
greg 642e9da8ee Move everything symbol-table-related into a separate module 2018-07-26 00:52:46 -07:00
greg cea7427847 put TypeEnvironment on TypeContext 2018-07-26 00:52:46 -07:00
greg 3156c31dfc Variable lookup 2018-07-26 00:52:46 -07:00
greg 2e457cd5e8 First real inferring 2018-07-26 00:52:46 -07:00
greg 843d895f2b infer infra 2018-07-26 00:52:46 -07:00
greg 734c53ce0d Starting to deal with actual expr inferring 2018-07-26 00:52:46 -07:00
greg 3a3b8dd440 TypeEnvironment lives in Infer 2018-07-26 00:52:46 -07:00
greg c96a56a7ac fresh 2018-07-26 00:52:46 -07:00
greg 4017857a3a Unification 2018-07-26 00:52:46 -07:00
greg 9e0f8b8a14 InferError 2018-07-26 00:52:46 -07:00
greg 7121624f77 Type Env 2018-07-26 00:52:46 -07:00
greg 48e795decc apply_substitution for PolyTypes
If I made an error it's likely here...
2018-07-26 00:52:46 -07:00
greg a26da934f4 Substitution monotypes 2018-07-26 00:52:46 -07:00
greg 1de1cd9cfd For H-M, add types and some impls 2018-07-26 00:52:46 -07:00
greg 6f639b9030 Type type structure 2018-07-26 00:52:46 -07:00
greg 8f0104ebc7 Deletion 2018-07-26 00:52:46 -07:00
greg 36cd7e080d Even more deletions 2018-07-26 00:52:46 -07:00
greg f48a25779c Lol just get rid of all the old code, start from scratch again 2018-07-26 00:52:46 -07:00
greg 808a1bfc98 Still more deletions 2018-07-26 00:52:46 -07:00
greg c7e46c1cfa KIll any commented code 2018-07-26 00:52:46 -07:00
greg 98cfcfc18d Eval shouldn't be aware of types 2018-07-26 00:52:46 -07:00
greg b4c7ea3d02 Show bindings too in debug 2018-07-26 00:52:46 -07:00
greg e7c89ed840 Some more refactoring 2018-07-26 00:52:46 -07:00
greg b0e38f7f5b Refactor 2018-07-26 00:52:46 -07:00
greg 276662d98a Some code rearrangements 2018-07-26 00:52:46 -07:00
greg e8e9265b26 Use less verbose match syntax 2018-07-26 00:52:46 -07:00
greg cb316a973e Getting back to hindley-milner
First, clear out some of this cruft in the compiler warnings
2018-07-26 00:52:46 -07:00
greg 9fb148bb02 Make compile again 2018-07-26 00:52:46 -07:00
greg 97df2fa344 I dunno 2018-07-26 00:52:46 -07:00
greg 6d93c758a2 Add function to symbol table 2018-07-26 00:52:46 -07:00
greg aff421cd99 Working with symbol table
Note that symbol table is a different object now than the previous
binding table that was used for type-checking. That binding table is not
currently debugged and should be debugged in a separate debug output with
typechecking proper.
2018-07-26 00:52:46 -07:00
greg 493d76da0b Add symbol table data structure to typechecking 2018-07-26 00:52:46 -07:00
greg 6f8dc9bedd rename IntLiteral -> NatLiteral 2018-07-26 00:52:46 -07:00
greg c5e8d3e080 Random notes re: symbol table
I'm proably gonna want to redo the symbol table stuff after reading Language
Implementation Patterns, esp. to accomodate scopes
2018-07-26 00:52:46 -07:00
greg 6f43c3b81d move schala into separate crate 2018-07-26 00:52:45 -07:00