An implementation of a constraint-based type-checker for ML based on “The essence of ML type inference”. This one additionally generates an annotated AST along with extra coercions to generalize variables inside patterns. See my master's thesis report for details.