A general framework for hindley/milner type systems with constraints

In my dissertation, I introduce a general framework for Hindley/Milner systems with constraints. The basic idea is to factor out the common core of previous extensions of the Hindley/Milner system. I present a Hindley/Milner system where the constraint part is a parameter. Specific applications can be obtained by providing specific constraint systems which capture the application in mind. For instance, the Hindley/Milner system can be recovered by instantiating the constraint part to the standard Herbrand constraint system. Type system instances of the general framework are sound if the underlying constraint system is sound. Furthermore, I give a generic type inference algorithm for the general framework, under sufficient conditions on the specific constraint system type inference yields principal types.