type user_status =
| Authorized
| Unauthorized;
let someone_status = Authorized
{
"module_ident": "Tuturu!\n",
"main_module_block_size": 1,
"required_globals": "{ }\n",
"code": [
"Lprim",
["Psetglobal", "Tuturu!\n"],
[
[
"Llet",
["Strict"],
["Pgenval"],
"someone_status/83\n",
["Lconst", ["Const_pointer", 0]],
[
"Lprim",
["Pmakeblock", 0, ["Immutable"], null],
[["Lvar", "someone_status/83\n"]],
"File \"_none_\", line 1\n"
]
]
],
"File \"_none_\", line 1\n"
]
}
type user_status = [ | `Authorized | `Unauthorized];
let someone_status: user_status = `Authorized
{
"module_ident": "Tuturu!\n",
"main_module_block_size": 1,
"required_globals": "{ }\n",
"code": [
"Lprim",
["Psetglobal", "Tuturu!\n"],
[
[
"Llet",
["Strict"],
["Pgenval"],
"someone_status/81\n",
["Lconst", ["Const_pointer", -706682181]],
[
"Lprim",
["Pmakeblock", 0, ["Immutable"], null],
[["Lvar", "someone_status/81\n"]],
"File \"_none_\", line 1\n"
]
]
],
"File \"_none_\", line 1\n"
]
}
type user = {
mutable name: string,
id: int,
};
let eduardo = {name: "Eduardo", id: 0};
let name = eduardo.name
{
"module_ident": "Tuturu!\n",
"main_module_block_size": 2,
"required_globals": "{ }\n",
"code": [
"Lprim",
["Psetglobal", "Tuturu!\n"],
[
[
"Llet",
["Strict"],
["Pgenval"],
"eduardo/83\n",
[
"Lprim",
["Pmakeblock", 0, ["Mutable"], [["Pgenval"], ["Pintval"]]],
[
["Lconst", ["Const_base", ["Const_string", "Eduardo", null]]],
["Lconst", ["Const_base", ["Const_int", 0]]]
],
"File \"_none_\", line 1\n"
],
[
"Llet",
["Strict"],
["Pgenval"],
"name/84\n",
[
"Lprim",
["Pfield", 0],
[["Lvar", "eduardo/83\n"]],
"File \"_none_\", line 1\n"
],
[
"Lprim",
["Pmakeblock", 0, ["Immutable"], null],
[
["Lvar", "eduardo/83\n"],
["Lvar", "name/84\n"]
],
"File \"_none_\", line 1\n"
]
]
]
],
"File \"_none_\", line 1\n"
]
}
type user = {
.
name: string,
id: int,
};
let eduardo = {as _; pub name = "Eduardo"; pub id = 0};
let eduardo_name = eduardo#name
[
"Lprim",
["Psetglobal", "Tuturu!\n"],
[
[
"Llet",
["Alias"],
["Pgenval"],
"shared/124\n",
[
"Lconst",
[
"Const_block",
0,
[
["Const_immstring", "name"],
["Const_immstring", "id"]
]
]
],
[
"Llet",
["Strict"],
["Pgenval"],
"eduardo/81\n",
[
"Llet",
["StrictOpt"],
["Pgenval"],
"class_tables/101\n",
[
"Lprim",
["Pmakeblock", 0, ["Mutable"], null],
[
["Lconst", ["Const_pointer", 0]],
["Lconst", ["Const_pointer", 0]],
["Lconst", ["Const_pointer", 0]]
],
"File \"_none_\", line 1\n"
],
[
"Llet",
["Strict"],
["Pgenval"],
"class/105\n",
[
"Lapply",
{
"ap_func": [
"Lprim",
["Pfield", 15],
[
[
"Lprim",
["Pgetglobal", "CamlinternalOO!\n"],
[],
"File \"_none_\", line 1\n"
]
],
"File \"_none_\", line 1\n"
],
"ap_args": [["Lvar", "shared/124\n"]],
"ap_loc": "File \"_none_\", line 1\n",
"ap_should_be_tailcall": false,
"ap_inlined": ["Default_inline"],
"ap_specialised": ["Default_specialise"]
}
],
[
"Llet",
["Strict"],
["Pgenval"],
"obj_init/128\n",
[
"Llet",
["Strict"],
["Pgenval"],
"ids/123\n",
[
"Lapply",
{
"ap_func": [
"Lprim",
["Pfield", 7],
[
[
"Lprim",
["Pgetglobal", "CamlinternalOO!\n"],
[],
"File \"_none_\", line 1\n"
]
],
"File \"_none_\", line 1\n"
],
"ap_args": [
["Lvar", "class/105\n"],
["Lvar", "shared/124\n"]
],
"ap_loc": "File \"_none_\", line 1\n",
"ap_should_be_tailcall": false,
"ap_inlined": ["Default_inline"],
"ap_specialised": ["Default_specialise"]
}
],
[
"Llet",
["StrictOpt"],
["Pgenval"],
"name/88\n",
[
"Lprim",
["Pfield", 0],
[["Lvar", "ids/123\n"]],
"File \"_none_\", line 1\n"
],
[
"Llet",
["StrictOpt"],
["Pgenval"],
"id/89\n",
[
"Lprim",
["Pfield", 1],
[["Lvar", "ids/123\n"]],
"File \"_none_\", line 1\n"
],
[
"Lsequence",
[
"Lapply",
{
"ap_func": [
"Lprim",
["Pfield", 10],
[
[
"Lprim",
["Pgetglobal", "CamlinternalOO!\n"],
[],
"File \"_none_\", line 1\n"
]
],
"File \"_none_\", line 1\n"
],
"ap_args": [
["Lvar", "class/105\n"],
[
"Lprim",
["Pmakeblock", 0, ["Immutable"], null],
[
["Lvar", "name/88\n"],
["Lconst", ["Const_pointer", 0]],
[
"Lconst",
[
"Const_base",
["Const_string", "Eduardo", null]
]
],
["Lvar", "id/89\n"],
["Lconst", ["Const_pointer", 0]],
["Lconst", ["Const_base", ["Const_int", 0]]]
],
"File \"_none_\", line 1\n"
]
],
"ap_loc": "File \"_none_\", line 1\n",
"ap_should_be_tailcall": false,
"ap_inlined": ["Default_inline"],
"ap_specialised": ["Default_specialise"]
}
],
[
"Lfunction",
{
"kind": ["Curried"],
"params": [["env/107\n", ["Pgenval"]]],
"return": ["Pgenval"],
"body": [
"Lapply",
{
"ap_func": [
"Lprim",
["Pfield", 23],
[
[
"Lprim",
["Pgetglobal", "CamlinternalOO!\n"],
[],
"File \"_none_\", line 1\n"
]
],
"File \"_none_\", line 1\n"
],
"ap_args": [
["Lconst", ["Const_pointer", 0]],
["Lvar", "class/105\n"]
],
"ap_loc": "File \"_none_\", line 1\n",
"ap_should_be_tailcall": false,
"ap_inlined": ["Default_inline"],
"ap_specialised": ["Default_specialise"]
}
],
"attr": {
"inline": ["Default_inline"],
"specialise": ["Default_specialise"],
"local": ["Default_local"],
"is_a_functor": false,
"stub": false
},
"loc": "File \"_none_\", line 1\n"
}
]
]
]
]
],
[
"Lsequence",
[
"Lapply",
{
"ap_func": [
"Lprim",
["Pfield", 16],
[
[
"Lprim",
["Pgetglobal", "CamlinternalOO!\n"],
[],
"File \"_none_\", line 1\n"
]
],
"File \"_none_\", line 1\n"
],
"ap_args": [["Lvar", "class/105\n"]],
"ap_loc": "File \"_none_\", line 1\n",
"ap_should_be_tailcall": false,
"ap_inlined": ["Default_inline"],
"ap_specialised": ["Default_specialise"]
}
],
[
"Lapply",
{
"ap_func": ["Lvar", "obj_init/128\n"],
"ap_args": [["Lconst", ["Const_pointer", 0]]],
"ap_loc": "File \"_none_\", line 1\n",
"ap_should_be_tailcall": false,
"ap_inlined": ["Default_inline"],
"ap_specialised": ["Default_specialise"]
}
]
]
]
]
],
[
"Llet",
["Strict"],
["Pgenval"],
"eduardo_name/94\n",
[
"Lsend",
["Public"],
["Lconst", ["Const_base", ["Const_int", -922783157]]],
["Lvar", "eduardo/81\n"],
[],
"File \"_none_\", line 1\n"
],
[
"Lprim",
["Pmakeblock", 0, ["Immutable"], null],
[
["Lvar", "eduardo/81\n"],
["Lvar", "eduardo_name/94\n"]
],
"File \"_none_\", line 1\n"
]
]
]
]
],
"File \"_none_\", line 1\n"
]
let is_true = true;
let is_false = false
{
"module_ident": "Tuturu!\n",
"main_module_block_size": 2,
"required_globals": "{ }\n",
"code": [
"Lprim",
["Psetglobal", "Tuturu!\n"],
[
[
"Llet",
["Strict"],
["Pgenval"],
"is_true/80\n",
["Lconst", ["Const_pointer", 1]],
[
"Llet",
["Strict"],
["Pgenval"],
"is_false/81\n",
["Lconst", ["Const_pointer", 0]],
[
"Lprim",
["Pmakeblock", 0, ["Immutable"], null],
[
["Lvar", "is_true/80\n"],
["Lvar", "is_false/81\n"]
],
"File \"_none_\", line 1\n"
]
]
]
],
"File \"_none_\", line 1\n"
]
}
let print_endline = Stdlib.print_endline
[
"Lprim",
["Psetglobal", "Tuturu!\n"],
[
[
"Llet",
["Strict"],
["Pgenval"],
"print_endline/82\n",
[
"Lprim",
["Pfield", 45],
[
[
"Lprim",
["Pgetglobal", "Stdlib!\n"],
[],
"File \"_none_\", line 1\n"
]
],
"File \"_none_\", line 1\n"
],
[
"Lprim",
["Pmakeblock", 0, ["Immutable"], null],
[["Lvar", "print_endline/82\n"]],
"File \"_none_\", line 1\n"
]
]
],
"File \"_none_\", line 1\n"
]
module Sub = {
let value = 123;
}
[
"Lprim",
["Psetglobal", "Tuturu!\n"],
[
[
"Llet",
["Strict"],
["Pgenval"],
"Sub/85\n",
[
"Levent",
[
"Llet",
["Strict"],
["Pintval"],
"value/84\n",
["Lconst", ["Const_base", ["Const_int", 123]]],
[
"Lprim",
["Pmakeblock", 0, ["Immutable"], null],
[["Lvar", "value/84\n"]],
"File \"_none_\", line 1\n"
]
],
{
"lev_loc": "File \"_none_\", line 1\n",
"lev_kind": ["Lev_module_definition", "Sub/85\n"],
"lev_repr": null,
"lev_env": "env\n"
}
],
[
"Lprim",
["Pmakeblock", 0, ["Immutable"], null],
[["Lvar", "Sub/85\n"]],
"File \"_none_\", line 1\n"
]
]
],
"File \"_none_\", line 1\n"
]