Type systems are important tools in the design, analysis, and verification of programming languages. A particular interesting type system is the Hindley/Milnersystem for which numerous, ad-hoc extensions exist.
I co-developed a general Hindley/Milner framework, baptized HM(X) [49,47], parameterized in terms of the constraint domain X. Specific instances can be obtained by appropriately defining X. I applied this framework to study the design of record systems  and to solve the open problem of type inference for dimension types . I also gave a reformulation of HM(X) where the concept of substitutions is replaced by constraints . My PhD thesis  contains a comprehensive summary.