J. Garrigue and J. L. Normand, Adding GADTs to OCaml: the direct approach, 2011.

F. Pottier and Y. Régis-gianas, Stratified type inference for generalized algebraic data types, Proceedings of the 33rd ACM Symposium on Principles of Programming Languages (POPL'06), pp.232-244, 2006.
URL : https://hal.archives-ouvertes.fr/inria-00629091

D. Vytiniotis, S. P. Jones, T. Schrijvers, and M. Sulzmann, OutsideIn(X) Modular type inference with local assumptions, Journal of Functional Programming, vol.21, issue.4-5, pp.333-412, 2011.
DOI : 10.1016/0890-5401(90)90018-D