on 727d708 help sign in
all commits
9fe6c9aChange functions for creating type variables, distinguish names of different constraint type variablesEvan Czaplicki a05c82fMess with whitespaceEvan Czaplicki d456cecOverload literal numbers without a decimal point to be either Ints or FloatsEvan Czaplicki 175798fFix type constraints for case-expressionsEvan Czaplicki d9471f6Add flexible variables for type annotated valuesEvan Czaplicki 4c0f716Change the representation of SolverState to have a "saved environment", recognize the "Save the Environment" variableEvan Czaplicki a3a7b3eRefactor type environmentEvan Czaplicki fceb46dTry to support polymorphic pattern matchingEvan Czaplicki 7f43392Create module to sort let-blocks into "strongly connected components". This does two things:Evan Czaplicki 4d7562fBegin generating constraints for whole programs. Need to perform dependency sort within let-expressions for things to work properly though.Evan Czaplicki 4208b5cRemove some debugging stuff and generally clean up the code. There was one potential error in which a debug needed to be a liftIO, the computation it performed was not optional.Evan Czaplicki ca77056Improve quality of error messages.Evan Czaplicki b5887f4Get type inference working in the basic case. Begin working on printing errors in a prettier way.Evan Czaplicki 497d478Get the solver working on basic programs. It outputs pretty types for the variables in the program. Need to test further and start doing some benchmarking.Evan Czaplicki 0ed7205Add pretty printing for type constraints.Evan Czaplicki b87b845Move the Environment.hs and Fragment.hs files down a directory.Evan Czaplicki ca8441fContinue getting the new type-checker in order.Evan Czaplicki 351c33cStart generating constraints for let-expressions. Account for mutual recursion, but will throw a runtime error if a user has given type annotations.Evan Czaplicki cdb63bdStart writing a new type checker based on the ATAPL chapter on efficient type-inference.Evan Czaplicki