Equirecursive types

Run Settings
LanguageOcaml
Language Version
Run Command
type 'a list = [ `Nil | `Cons of 'a * 'a list ]
let twice : 'a -> [ `Nil | `Cons of 'a * [ `Nil | `Cons of 'a * 'a list ] ] =
fun x -> `Cons (x, `Cons (x, `Nil))
let xs : int list =
twice 1
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Editor Settings
Theme
Key bindings
Full width
Lines