OCaml - Ce que le type de données à certains et pas du tout?

Si je suis en utilisant Some et None combo dans une liste de ce que serait le type de données de la liste? Est-il toujours 'a? Ou est-il une sorte de type de Some/None?

let listVar : (* type here *) list = [Some 4; Some 3; None; Some 2];;

Si j'ai mis int il me donne l'erreur:

Cette expression est de type int option * int option * 'd'une option * int
option, mais est ici utilisé avec le type int

Quand j'ai mis 'a il compile bien, mais le de base OCaml tutoriel dit (j'ai fait des références à d'autres langues pour expliquer ma question mieux):

Il ne sera pas encore clair pourquoi les fonctions polymorphes sont utiles, mais ils
sont très utiles et très commun, et donc nous allons en discuter plus tard.
(Indice: le polymorphisme est un peu comme les templates en C++ ou génériques en
Java 1.5).

Je pensais que c'était comme référence/pointeur dans d'autres langues, ce qui fait sens. Mais maintenant, je ne comprends vraiment pas quel type est None. En va de même avec Some.

Aussi, je sais que je devrais poser deux questions en une seule question, mais celui-ci a une forte relation à la question précédente. Quel est le point de Quelques-uns? J'ai l'habitude de le voir utilisé lorsqu'Aucun n'est utilisé. Si j'en œuvre de la liste ci-dessus sans, il toujours compile mais la structure de la liste n'a pas l'option "option" du pavillon, qui je suppose signifie en option (je ne peux pas l'air de trouver quelque chose sur internet concernant cette). Quelqu'un peut-il me fournir un cas, c'est utile?

InformationsquelleAutor Gasim | 2014-02-01