Closed Memorytaco closed 1 year ago
And articles referenced here should provide us a good hint how MLFω should behave.
Haskell happens to have a great library named fgl, and one transformation from parsed type AST to its graph representation is done under module Inference.Graph and unification is on the way.
For detailed technical introduction of graphic presentation of MLF, please refer to this great thesis (English version and French version) :
Since there is no special top level syntax for function, we need to handle the complex type inference of lambda. This is tricky when pattern match is involved, which means concepts like typed path polymorphism or pure pattern calculus are introduced.
Current solution or work around should be dropping the pattern match feature out, and deal with variables only. Let's see whether we will have methods to deal with this later. (maybe elaborate pattern calculus into simpler form?)
Need more comments here. This could be most complex thing in this project.
Yet, i made some progress here.
A workflow has been done so we mark this as "Done", even with that there is no complete full type inference available.
see this commit.
The following three articles should cover most problems to be solved except the omega part and predicate constraint part.