We study a minimal extension of the Hindley/Milner system that
supports overloading and polymorphic records.
We also show that every typable term in this system has a
principal type and give an algorithm to reconstruct that type.
We give the proofs for termination, soundness and correctness for
the constrained unification and the type reconstruction algorithm.