A. Aiken and E. L. Wimmers, Type inclusion constraints and type inference, Proceedings of the conference on Functional programming languages and computer architecture , FPCA '93, pp.31-41, 1993.
DOI : 10.1145/165180.165188

V. Benzaken, G. Castagna, and A. Frisch, CDuce: an XML-friendly general purpose language, ICFP '03, 2003.

G. Castagna, K. Nguy?n, Z. Xu, H. Im, S. Lenglet et al., Polymorphic functions with set-theoretic types, Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL '14, 2014.
DOI : 10.1145/2535838.2535840

URL : https://hal.archives-ouvertes.fr/hal-00907166

G. Castagna and Z. Xu, Set-theoretic Foundation of Parametric Polymorphism and Subtyping, ICFP '11, 2011.
URL : https://hal.archives-ouvertes.fr/hal-00618839

M. Coppo and M. Dezani, A new type assignment for ??-terms, Archiv f??r Mathematische Logik und Grundlagenforschung, vol.5, issue.1
DOI : 10.1007/BF02011875

M. Coppo and P. Giannini, Principal Types and Unification for Simple Intersection Type Systems, Information and Computation, vol.122, issue.1, pp.70-96, 1995.
DOI : 10.1006/inco.1995.1141

B. Courcelle, Fundamental properties of infinite trees, Theoretical Computer Science, vol.25, issue.2, pp.95-169, 1983.
DOI : 10.1016/0304-3975(83)90059-2

L. Damas and R. Milner, Principal type-schemes for functional programs, Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages , POPL '82, pp.207-212, 1982.
DOI : 10.1145/582153.582176

R. Davies, Practical Refiniment-Type Checking, 2005.

J. Robie, XQuery 3.0: An XML query language (working draft, 2010.

A. Frisch, Théorie, conception et réalisation d'un langage de programmation fonctionnel adapté à XML, 2004.

A. Frisch, G. Castagna, and V. Benzaken, Semantic subtyping, Journal of the ACM, vol.55, issue.4, pp.1-64, 2008.
DOI : 10.1145/1391289.1391293

URL : https://hal.archives-ouvertes.fr/hal-00152690

T. Jim, What are principal typings and what are they good for?, Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages , POPL '96, pp.42-53, 1996.
DOI : 10.1145/237721.237728

T. Jim, A polar type system, ICALP Satellite Workshops, pp.323-338, 2000.

A. J. Kfoury and J. B. Wells, Principality and decidable type inference for finite-rank intersection types, Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages , POPL '99, pp.161-174, 1999.
DOI : 10.1145/292540.292556

D. Leivant, Polymorphic type inference, Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages , POPL '83, 1983.
DOI : 10.1145/567067.567077

A. Martelli and U. Montanari, An Efficient Unification Algorithm, ACM Transactions on Programming Languages and Systems, vol.4, issue.2, pp.258-282, 1982.
DOI : 10.1145/357162.357169

URL : http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.96.6119

M. Odersky, M. Sulzmann, and M. Wehr, Type inference with constrained types, Theory and Practice of Object Systems, vol.X, issue.1, pp.35-55, 1999.
DOI : 10.1002/(SICI)1096-9942(199901/03)5:1<35::AID-TAPO4>3.0.CO;2-4

C. Okasaki, Purely Functional Data Structures, CUP, 1998.
DOI : 10.1017/CBO9780511530104

B. C. Pierce and D. N. Turner, Local type inference, ACM Transactions on Programming Languages and Systems, vol.22, issue.1, pp.1-44, 2000.
DOI : 10.1145/345099.345100

F. Pottier and D. Rémy, The essence of ML type inference, Advanced Topics in Types and Programming Languages, pp.389-489, 2005.

S. Tobin-hochstadt and M. Felleisen, The design and implementation of typed scheme, POPL '08, 2008.

S. Tobin-hochstadt and M. Felleisen, Logical types for untyped languages, ICFP '10, 2010.

S. Van-bakel, Intersection Type Disciplines in Lambda Calculus and Applicative Term Rewriting Systems, 1993.

Z. Xu, Parametric Polymorphism for XML Processing Languages, 2013.
URL : https://hal.archives-ouvertes.fr/tel-00858744

V. Concat, 17 val iter2 : ('a -> 'b -> unit) -> 'a list -> 'b list -> unit 18 val map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list 19 val rev_map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list 20 val fold_left2 val for_all : ('a -> bool) -> 'a list -> bool 23 val exists : ('a -> bool) -> 'a list -> bool 24 val for_all2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool 25 val exists2 : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool 26 val mem : 'a -> 'a list -> bool 27 val memq : 'a -> 'a list -> bool 28 val find : ('a -> bool) -> 'a list -> 'a 29 val filter : ('a -> bool) -> 'a list -> 'a list 30 val find_all : ('a -> bool) -> 'a list -> 'a list 31 val partition : ('a -> bool) -> 'a list -> 'a list * 'a list 32 val assoc : 'a -> ('a * 'b) list -> 'b 33 val assq : 'a -> ('a * 'b) list -> 'b 34 val mem_assoc : 'a -> ('a * 'b) list -> bool 35 val mem_assq : 'a -> ('a * 'b) list -> bool 36 val remove_assoc, int) -> 'a list -> 'a list 42 val fast_sort : ('a -> 'a -> int) -> 'a list -> 'a list 43 val merge, pp.22-41