Ptop_def [ structure_item (//toplevel//[10,215+0]..[10,215+39]) Pstr_modtype "S" (//toplevel//[10,215+12]..[10,215+13]) module_type (//toplevel//[10,215+16]..[10,215+23]) attribute "attr" [ structure_item (//toplevel//[10,215+31]..[10,215+38]) Pstr_eval expression (//toplevel//[10,215+31]..[10,215+38]) Pexp_ident "payload" (//toplevel//[10,215+31]..[10,215+38]) ] Pmty_signature [] ] module type S = sig end Ptop_def [ structure_item (//toplevel//[3,2+0]..[3,2+37]) Pstr_module "M" (//toplevel//[3,2+7]..[3,2+8]) module_expr (//toplevel//[3,2+11]..[3,2+21]) attribute "attr" [ structure_item (//toplevel//[3,2+29]..[3,2+36]) Pstr_eval expression (//toplevel//[3,2+29]..[3,2+36]) Pexp_ident "payload" (//toplevel//[3,2+29]..[3,2+36]) ] Pmod_structure [] ] module M : sig end Ptop_def [ structure_item (//toplevel//[2,1+0]..[2,1+28]) Pstr_type Rec [ type_declaration "t" (//toplevel//[2,1+5]..[2,1+6]) (//toplevel//[2,1+0]..[2,1+28]) ptype_params = [] ptype_cstrs = [] ptype_kind = Ptype_abstract ptype_private = Public ptype_manifest = Some core_type (//toplevel//[2,1+9]..[2,1+12]) attribute "attr" [ structure_item (//toplevel//[2,1+20]..[2,1+27]) Pstr_eval expression (//toplevel//[2,1+20]..[2,1+27]) Pexp_ident "payload" (//toplevel//[2,1+20]..[2,1+27]) ] Ptyp_constr "int" (//toplevel//[2,1+9]..[2,1+12]) [] ] ] type t = int Ptop_def [ structure_item (//toplevel//[2,1+0]..[2,1+1]) Pstr_eval expression (//toplevel//[2,1+0]..[2,1+1]) attribute "attr" [ structure_item (//toplevel//[2,1+9]..[2,1+16]) Pstr_eval expression (//toplevel//[2,1+9]..[2,1+16]) Pexp_ident "payload" (//toplevel//[2,1+9]..[2,1+16]) ] Pexp_constant constant (//toplevel//[2,1+0]..[2,1+1]) PConst_int (3,None) ] - : int = 3 Ptop_def [ structure_item (//toplevel//[2,1+0]..[2,1+30]) Pstr_exception type_exception attribute "attr" [ structure_item (//toplevel//[2,1+22]..[2,1+29]) Pstr_eval expression (//toplevel//[2,1+22]..[2,1+29]) Pexp_ident "payload" (//toplevel//[2,1+22]..[2,1+29]) ] ptyext_constructor = extension_constructor (//toplevel//[2,1+0]..[2,1+13]) pext_name = "Exn" pext_kind = Pext_decl [] None ] exception Exn Ptop_def [ structure_item (//toplevel//[4,17+0]..[4,17+50]) Pstr_modtype "F" (//toplevel//[4,17+12]..[4,17+13]) module_type (//toplevel//[4,17+24]..[4,17+50]) Pmty_functor "A" (//toplevel//[4,17+25]..[4,17+26]) module_type (//toplevel//[4,17+29]..[4,17+30]) Pmty_ident "S" (//toplevel//[4,17+29]..[4,17+30]) module_type (//toplevel//[4,17+32]..[4,17+50]) Pmty_functor "B" (//toplevel//[4,17+33]..[4,17+34]) module_type (//toplevel//[4,17+37]..[4,17+38]) Pmty_ident "S" (//toplevel//[4,17+37]..[4,17+38]) module_type (//toplevel//[4,17+43]..[4,17+50]) Pmty_signature [] ] module type F = (A : S) (B : S) -> sig end Ptop_def [ structure_item (//toplevel//[2,1+0]..[2,1+48]) Pstr_module "F" (//toplevel//[2,1+7]..[2,1+8]) module_expr (//toplevel//[2,1+19]..[2,1+48]) Pmod_functor "A" (//toplevel//[2,1+20]..[2,1+21]) module_type (//toplevel//[2,1+24]..[2,1+25]) Pmty_ident "S" (//toplevel//[2,1+24]..[2,1+25]) module_expr (//toplevel//[2,1+27]..[2,1+48]) Pmod_functor "B" (//toplevel//[2,1+28]..[2,1+29]) module_type (//toplevel//[2,1+32]..[2,1+33]) Pmty_ident "S" (//toplevel//[2,1+32]..[2,1+33]) module_expr (//toplevel//[2,1+38]..[2,1+48]) Pmod_structure [] ] module F : (A : S) (B : S) -> sig end Ptop_def [ structure_item (//toplevel//[4,18+0]..[4,18+31]) Pstr_modtype "S1" (//toplevel//[4,18+12]..[4,18+14]) module_type (//toplevel//[4,18+17]..[4,18+31]) Pmty_signature [ signature_item (//toplevel//[4,18+21]..[4,18+27]) Psig_type Rec [ type_declaration "t" (//toplevel//[4,18+26]..[4,18+27]) (//toplevel//[4,18+21]..[4,18+27]) ptype_params = [] ptype_cstrs = [] ptype_kind = Ptype_abstract ptype_private = Public ptype_manifest = None ] ] ] module type S1 = sig type t end Ptop_def [ structure_item (//toplevel//[2,1+0]..[2,1+37]) Pstr_modtype "T1" (//toplevel//[2,1+12]..[2,1+14]) module_type (//toplevel//[2,1+17]..[2,1+37]) Pmty_with module_type (//toplevel//[2,1+17]..[2,1+19]) Pmty_ident "S1" (//toplevel//[2,1+17]..[2,1+19]) [ Pwith_type "t" (//toplevel//[2,1+30]..[2,1+31]) type_declaration "t" (//toplevel//[2,1+30]..[2,1+31]) (//toplevel//[2,1+25]..[2,1+37]) ptype_params = [] ptype_cstrs = [] ptype_kind = Ptype_abstract ptype_private = Public ptype_manifest = Some core_type (//toplevel//[2,1+34]..[2,1+37]) Ptyp_constr "int" (//toplevel//[2,1+34]..[2,1+37]) [] ] ] module type T1 = sig type t = int end Ptop_def [ structure_item (//toplevel//[2,1+0]..[2,1+38]) Pstr_modtype "T1" (//toplevel//[2,1+12]..[2,1+14]) module_type (//toplevel//[2,1+17]..[2,1+38]) Pmty_with module_type (//toplevel//[2,1+17]..[2,1+19]) Pmty_ident "S1" (//toplevel//[2,1+17]..[2,1+19]) [ Pwith_typesubst "t" (//toplevel//[2,1+30]..[2,1+31]) type_declaration "t" (//toplevel//[2,1+30]..[2,1+31]) (//toplevel//[2,1+25]..[2,1+38]) ptype_params = [] ptype_cstrs = [] ptype_kind = Ptype_abstract ptype_private = Public ptype_manifest = Some core_type (//toplevel//[2,1+35]..[2,1+38]) Ptyp_constr "int" (//toplevel//[2,1+35]..[2,1+38]) [] ] ] module type T1 = sig end Ptop_def [ structure_item (//toplevel//[4,29+0]..[4,29+15]) Pstr_value Nonrec [ pattern (//toplevel//[4,29+4]..[4,29+5]) Ppat_var "x" (//toplevel//[4,29+4]..[4,29+5]) core_type (//toplevel//[4,29+8]..[4,29+11]) Ptyp_constr "int" (//toplevel//[4,29+8]..[4,29+11]) [] expression (//toplevel//[4,29+14]..[4,29+15]) Pexp_constant constant (//toplevel//[4,29+14]..[4,29+15]) PConst_int (3,None) ] ] val x : int = 3 Ptop_def [ structure_item (//toplevel//[2,1+0]..[2,1+35]) Pstr_value Nonrec [ pattern (//toplevel//[2,1+4]..[2,1+5]) Ppat_var "x" (//toplevel//[2,1+4]..[2,1+5]) "a" (//toplevel//[2,1+13]..[2,1+14]). core_type (//toplevel//[2,1+16]..[2,1+22]) Ptyp_arrow Nolabel core_type (//toplevel//[2,1+16]..[2,1+17]) Ptyp_constr "a" (//toplevel//[2,1+16]..[2,1+17]) [] core_type (//toplevel//[2,1+21]..[2,1+22]) Ptyp_constr "a" (//toplevel//[2,1+21]..[2,1+22]) [] expression (//toplevel//[2,1+25]..[2,1+35]) Pexp_function [ Pparam_val (//toplevel//[2,1+29]..[2,1+30]) Nolabel None pattern (//toplevel//[2,1+29]..[2,1+30]) Ppat_var "x" (//toplevel//[2,1+29]..[2,1+30]) ] None Pfunction_body expression (//toplevel//[2,1+34]..[2,1+35]) Pexp_ident "x" (//toplevel//[2,1+34]..[2,1+35]) ] ] val x : 'a -> 'a = Ptop_def [ structure_item (//toplevel//[2,1+0]..[5,61+3]) Pstr_value Nonrec [ pattern (//toplevel//[2,1+4]..[2,1+5]) Ppat_any expression (//toplevel//[2,1+8]..[5,61+3]) Pexp_object class_structure pattern (//toplevel//[2,1+14]..[2,1+14]) ghost Ppat_any [ class_field (//toplevel//[3,16+2]..[4,46+14]) Pcf_method Public "x" (//toplevel//[3,16+9]..[3,16+10]) Concrete Fresh expression (//toplevel//[3,16+18]..[4,46+14]) ghost Pexp_poly expression (//toplevel//[3,16+9]..[4,46+14]) Pexp_newtype "a" expression (//toplevel//[3,16+9]..[4,46+14]) Pexp_constraint expression (//toplevel//[4,46+4]..[4,46+14]) Pexp_function [ Pparam_val (//toplevel//[4,46+8]..[4,46+9]) Nolabel None pattern (//toplevel//[4,46+8]..[4,46+9]) Ppat_var "x" (//toplevel//[4,46+8]..[4,46+9]) ] None Pfunction_body expression (//toplevel//[4,46+13]..[4,46+14]) Pexp_ident "x" (//toplevel//[4,46+13]..[4,46+14]) core_type (//toplevel//[3,16+21]..[3,16+27]) Ptyp_arrow Nolabel core_type (//toplevel//[3,16+21]..[3,16+22]) Ptyp_constr "a" (//toplevel//[3,16+21]..[3,16+22]) [] core_type (//toplevel//[3,16+26]..[3,16+27]) Ptyp_constr "a" (//toplevel//[3,16+26]..[3,16+27]) [] Some core_type (//toplevel//[3,16+9]..[4,46+14]) ghost Ptyp_poly 'a core_type (//toplevel//[3,16+21]..[3,16+27]) Ptyp_arrow Nolabel core_type (//toplevel//[3,16+21]..[3,16+22]) Ptyp_var a core_type (//toplevel//[3,16+26]..[3,16+27]) Ptyp_var a ] ] ] - : < x : 'a. 'a -> 'a > = Ptop_def [ structure_item (//toplevel//[4,17+0]..[4,17+29]) Pstr_value Nonrec [ pattern (//toplevel//[4,17+4]..[4,17+5]) Ppat_var "x" (//toplevel//[4,17+4]..[4,17+5]) expression (//toplevel//[4,17+6]..[4,17+29]) ghost Pexp_function [ Pparam_val (//toplevel//[4,17+6]..[4,17+14]) Nolabel None pattern (//toplevel//[4,17+6]..[4,17+14]) Ppat_var "contents" (//toplevel//[4,17+6]..[4,17+14]) ] None Pfunction_body expression (//toplevel//[4,17+17]..[4,17+29]) Pexp_record [ "contents" (//toplevel//[4,17+19]..[4,17+27]) ghost expression (//toplevel//[4,17+19]..[4,17+27]) Pexp_ident "contents" (//toplevel//[4,17+19]..[4,17+27]) ] None ] ] val x : 'a -> 'a ref = Ptop_def [ structure_item (//toplevel//[2,1+0]..[2,1+30]) Pstr_value Nonrec [ pattern (//toplevel//[2,1+4]..[2,1+5]) Ppat_var "x" (//toplevel//[2,1+4]..[2,1+5]) expression (//toplevel//[2,1+8]..[2,1+30]) Pexp_record [ "contents" (//toplevel//[2,1+10]..[2,1+18]) expression (//toplevel//[2,1+19]..[2,1+28]) Pexp_constraint expression (//toplevel//[2,1+27]..[2,1+28]) Pexp_constant constant (//toplevel//[2,1+27]..[2,1+28]) PConst_int (3,None) core_type (//toplevel//[2,1+21]..[2,1+24]) Ptyp_constr "int" (//toplevel//[2,1+21]..[2,1+24]) [] ] None ] ] val x : int ref = {contents = 3} Ptop_def [ structure_item (//toplevel//[2,1+0]..[2,1+35]) Pstr_value Nonrec [ pattern (//toplevel//[2,1+4]..[2,1+5]) Ppat_var "x" (//toplevel//[2,1+4]..[2,1+5]) expression (//toplevel//[2,1+6]..[2,1+35]) ghost Pexp_function [ Pparam_val (//toplevel//[2,1+6]..[2,1+14]) Nolabel None pattern (//toplevel//[2,1+6]..[2,1+14]) Ppat_var "contents" (//toplevel//[2,1+6]..[2,1+14]) ] None Pfunction_body expression (//toplevel//[2,1+17]..[2,1+35]) Pexp_record [ "contents" (//toplevel//[2,1+19]..[2,1+27]) ghost expression (//toplevel//[2,1+19]..[2,1+33]) Pexp_constraint expression (//toplevel//[2,1+19]..[2,1+27]) Pexp_ident "contents" (//toplevel//[2,1+19]..[2,1+27]) core_type (//toplevel//[2,1+30]..[2,1+33]) Ptyp_constr "int" (//toplevel//[2,1+30]..[2,1+33]) [] ] None ] ] val x : int -> int ref = Ptop_def [ structure_item (//toplevel//[2,1+0]..[2,1+41]) Pstr_value Nonrec [ pattern (//toplevel//[2,1+4]..[2,1+5]) Ppat_var "x" (//toplevel//[2,1+4]..[2,1+5]) expression (//toplevel//[2,1+8]..[2,1+41]) Pexp_function [] None Pfunction_cases (//toplevel//[2,1+8]..[2,1+41]) [ pattern (//toplevel//[2,1+17]..[2,1+29]) Ppat_record Closed [ "contents" (//toplevel//[2,1+19]..[2,1+27]) ghost pattern (//toplevel//[2,1+19]..[2,1+27]) Ppat_var "contents" (//toplevel//[2,1+19]..[2,1+27]) ] expression (//toplevel//[2,1+33]..[2,1+41]) Pexp_ident "contents" (//toplevel//[2,1+33]..[2,1+41]) ] ] ] val x : 'a ref -> 'a = Ptop_def [ structure_item (//toplevel//[2,1+0]..[2,1+47]) Pstr_value Nonrec [ pattern (//toplevel//[2,1+4]..[2,1+5]) Ppat_var "x" (//toplevel//[2,1+4]..[2,1+5]) expression (//toplevel//[2,1+8]..[2,1+47]) Pexp_function [] None Pfunction_cases (//toplevel//[2,1+8]..[2,1+47]) [ pattern (//toplevel//[2,1+17]..[2,1+35]) Ppat_record Closed [ "contents" (//toplevel//[2,1+19]..[2,1+27]) ghost pattern (//toplevel//[2,1+19]..[2,1+33]) Ppat_constraint pattern (//toplevel//[2,1+19]..[2,1+27]) Ppat_var "contents" (//toplevel//[2,1+19]..[2,1+27]) core_type (//toplevel//[2,1+30]..[2,1+33]) Ptyp_constr "int" (//toplevel//[2,1+30]..[2,1+33]) [] ] expression (//toplevel//[2,1+39]..[2,1+47]) Pexp_ident "contents" (//toplevel//[2,1+39]..[2,1+47]) ] ] ] val x : int ref -> int = Ptop_def [ structure_item (//toplevel//[2,1+0]..[2,1+44]) Pstr_value Nonrec [ pattern (//toplevel//[2,1+4]..[2,1+5]) Ppat_var "x" (//toplevel//[2,1+4]..[2,1+5]) expression (//toplevel//[2,1+8]..[2,1+44]) Pexp_function [] None Pfunction_cases (//toplevel//[2,1+8]..[2,1+44]) [ pattern (//toplevel//[2,1+17]..[2,1+39]) Ppat_record Closed [ "contents" (//toplevel//[2,1+19]..[2,1+27]) pattern (//toplevel//[2,1+28]..[2,1+37]) Ppat_constraint pattern (//toplevel//[2,1+36]..[2,1+37]) Ppat_var "i" (//toplevel//[2,1+36]..[2,1+37]) core_type (//toplevel//[2,1+30]..[2,1+33]) Ptyp_constr "int" (//toplevel//[2,1+30]..[2,1+33]) [] ] expression (//toplevel//[2,1+43]..[2,1+44]) Pexp_ident "i" (//toplevel//[2,1+43]..[2,1+44]) ] ] ] val x : int ref -> int = Ptop_def [ structure_item (//toplevel//[2,1+0]..[3,9+50]) Pstr_value Nonrec [ pattern (//toplevel//[2,1+4]..[2,1+5]) Ppat_any expression (//toplevel//[3,9+2]..[3,9+50]) Pexp_object class_structure pattern (//toplevel//[3,9+8]..[3,9+8]) ghost Ppat_any [ class_field (//toplevel//[3,9+9]..[3,9+21]) Pcf_val Immutable "foo" (//toplevel//[3,9+13]..[3,9+16]) Concrete Fresh expression (//toplevel//[3,9+19]..[3,9+21]) Pexp_constant constant (//toplevel//[3,9+19]..[3,9+21]) PConst_int (12,None) class_field (//toplevel//[3,9+22]..[3,9+46]) Pcf_method Public "x" (//toplevel//[3,9+29]..[3,9+30]) Concrete Fresh expression (//toplevel//[3,9+31]..[3,9+46]) ghost Pexp_poly expression (//toplevel//[3,9+31]..[3,9+46]) ghost Pexp_function [ Pparam_val (//toplevel//[3,9+31]..[3,9+34]) Nolabel None pattern (//toplevel//[3,9+31]..[3,9+34]) Ppat_var "foo" (//toplevel//[3,9+31]..[3,9+34]) ] None Pfunction_body expression (//toplevel//[3,9+37]..[3,9+46]) Pexp_override [ "foo" (//toplevel//[3,9+40]..[3,9+43]) ghost expression (//toplevel//[3,9+40]..[3,9+43]) Pexp_ident "foo" (//toplevel//[3,9+40]..[3,9+43]) ] None ] ] ] - : < x : int -> 'a > as 'a = Ptop_def [ structure_item (//toplevel//[4,19+0]..[4,19+26]) Pstr_value Nonrec [ pattern (//toplevel//[4,19+4]..[4,19+5]) Ppat_var "x" (//toplevel//[4,19+4]..[4,19+5]) expression (//toplevel//[4,19+8]..[4,19+26]) Pexp_open Fresh module_expr (//toplevel//[4,19+8]..[4,19+9]) Pmod_ident "M" (//toplevel//[4,19+8]..[4,19+9]) expression (//toplevel//[4,19+10]..[4,19+26]) Pexp_record [ "contents" (//toplevel//[4,19+12]..[4,19+20]) expression (//toplevel//[4,19+23]..[4,19+24]) Pexp_constant constant (//toplevel//[4,19+23]..[4,19+24]) PConst_int (3,None) ] None ] ] val x : int ref = {contents = 3} Ptop_def [ structure_item (//toplevel//[2,1+0]..[2,1+18]) Pstr_value Nonrec [ pattern (//toplevel//[2,1+4]..[2,1+5]) Ppat_var "x" (//toplevel//[2,1+4]..[2,1+5]) expression (//toplevel//[2,1+8]..[2,1+18]) Pexp_open Fresh module_expr (//toplevel//[2,1+8]..[2,1+9]) Pmod_ident "M" (//toplevel//[2,1+8]..[2,1+9]) expression (//toplevel//[2,1+10]..[2,1+18]) Pexp_construct "::" (//toplevel//[2,1+12]..[2,1+18]) ghost Some expression (//toplevel//[2,1+12]..[2,1+18]) ghost Pexp_tuple [ None expression (//toplevel//[2,1+12]..[2,1+13]) Pexp_constant constant (//toplevel//[2,1+12]..[2,1+13]) PConst_int (3,None) None expression (//toplevel//[2,1+15]..[2,1+18]) ghost Pexp_construct "::" (//toplevel//[2,1+15]..[2,1+18]) ghost Some expression (//toplevel//[2,1+15]..[2,1+18]) ghost Pexp_tuple [ None expression (//toplevel//[2,1+15]..[2,1+16]) Pexp_constant constant (//toplevel//[2,1+15]..[2,1+16]) PConst_int (4,None) None expression (//toplevel//[2,1+17]..[2,1+18]) ghost Pexp_construct "[]" (//toplevel//[2,1+17]..[2,1+18]) ghost None ] ] ] ] val x : int list = [3; 4] Ptop_def [ structure_item (//toplevel//[2,1+0]..[2,1+18]) Pstr_value Nonrec [ pattern (//toplevel//[2,1+4]..[2,1+5]) Ppat_var "x" (//toplevel//[2,1+4]..[2,1+5]) expression (//toplevel//[2,1+8]..[2,1+18]) Pexp_open Fresh module_expr (//toplevel//[2,1+8]..[2,1+9]) Pmod_ident "M" (//toplevel//[2,1+8]..[2,1+9]) expression (//toplevel//[2,1+12]..[2,1+16]) Pexp_sequence expression (//toplevel//[2,1+12]..[2,1+13]) Pexp_constant constant (//toplevel//[2,1+12]..[2,1+13]) PConst_int (3,None) expression (//toplevel//[2,1+15]..[2,1+16]) Pexp_constant constant (//toplevel//[2,1+15]..[2,1+16]) PConst_int (4,None) ] ] Line 2, characters 12-13: 2 | let x = M.( 3; 4 );; ^ Warning 10 [non-unit-statement]: this expression should have type unit. val x : int = 4 Ptop_def [ structure_item (//toplevel//[6,56+0]..[6,56+24]) Pstr_value Nonrec [ pattern (//toplevel//[6,56+4]..[6,56+12]) Ppat_var ".@()" (//toplevel//[6,56+4]..[6,56+12]) expression (//toplevel//[6,56+13]..[6,56+24]) ghost Pexp_function [ Pparam_val (//toplevel//[6,56+13]..[6,56+14]) Nolabel None pattern (//toplevel//[6,56+13]..[6,56+14]) Ppat_var "x" (//toplevel//[6,56+13]..[6,56+14]) Pparam_val (//toplevel//[6,56+15]..[6,56+16]) Nolabel None pattern (//toplevel//[6,56+15]..[6,56+16]) Ppat_var "y" (//toplevel//[6,56+15]..[6,56+16]) ] None Pfunction_body expression (//toplevel//[6,56+19]..[6,56+24]) Pexp_apply expression (//toplevel//[6,56+21]..[6,56+22]) Pexp_ident "+" (//toplevel//[6,56+21]..[6,56+22]) [ Nolabel expression (//toplevel//[6,56+19]..[6,56+20]) Pexp_ident "x" (//toplevel//[6,56+19]..[6,56+20]) Nolabel expression (//toplevel//[6,56+23]..[6,56+24]) Pexp_ident "y" (//toplevel//[6,56+23]..[6,56+24]) ] ] structure_item (//toplevel//[7,81+0]..[7,81+32]) Pstr_value Nonrec [ pattern (//toplevel//[7,81+4]..[7,81+14]) Ppat_var ".@()<-" (//toplevel//[7,81+4]..[7,81+14]) expression (//toplevel//[7,81+15]..[7,81+32]) ghost Pexp_function [ Pparam_val (//toplevel//[7,81+15]..[7,81+16]) Nolabel None pattern (//toplevel//[7,81+15]..[7,81+16]) Ppat_var "x" (//toplevel//[7,81+15]..[7,81+16]) Pparam_val (//toplevel//[7,81+17]..[7,81+18]) Nolabel None pattern (//toplevel//[7,81+17]..[7,81+18]) Ppat_var "y" (//toplevel//[7,81+17]..[7,81+18]) Pparam_val (//toplevel//[7,81+19]..[7,81+20]) Nolabel None pattern (//toplevel//[7,81+19]..[7,81+20]) Ppat_var "z" (//toplevel//[7,81+19]..[7,81+20]) ] None Pfunction_body expression (//toplevel//[7,81+23]..[7,81+32]) Pexp_apply expression (//toplevel//[7,81+29]..[7,81+30]) Pexp_ident "+" (//toplevel//[7,81+29]..[7,81+30]) [ Nolabel expression (//toplevel//[7,81+23]..[7,81+28]) Pexp_apply expression (//toplevel//[7,81+25]..[7,81+26]) Pexp_ident "+" (//toplevel//[7,81+25]..[7,81+26]) [ Nolabel expression (//toplevel//[7,81+23]..[7,81+24]) Pexp_ident "x" (//toplevel//[7,81+23]..[7,81+24]) Nolabel expression (//toplevel//[7,81+27]..[7,81+28]) Pexp_ident "y" (//toplevel//[7,81+27]..[7,81+28]) ] Nolabel expression (//toplevel//[7,81+31]..[7,81+32]) Pexp_ident "z" (//toplevel//[7,81+31]..[7,81+32]) ] ] structure_item (//toplevel//[8,114+0]..[8,114+25]) Pstr_value Nonrec [ pattern (//toplevel//[8,114+4]..[8,114+13]) Ppat_var ".%.{}" (//toplevel//[8,114+4]..[8,114+13]) expression (//toplevel//[8,114+14]..[8,114+25]) ghost Pexp_function [ Pparam_val (//toplevel//[8,114+14]..[8,114+15]) Nolabel None pattern (//toplevel//[8,114+14]..[8,114+15]) Ppat_var "x" (//toplevel//[8,114+14]..[8,114+15]) Pparam_val (//toplevel//[8,114+16]..[8,114+17]) Nolabel None pattern (//toplevel//[8,114+16]..[8,114+17]) Ppat_var "y" (//toplevel//[8,114+16]..[8,114+17]) ] None Pfunction_body expression (//toplevel//[8,114+20]..[8,114+25]) Pexp_apply expression (//toplevel//[8,114+22]..[8,114+23]) Pexp_ident "+" (//toplevel//[8,114+22]..[8,114+23]) [ Nolabel expression (//toplevel//[8,114+20]..[8,114+21]) Pexp_ident "x" (//toplevel//[8,114+20]..[8,114+21]) Nolabel expression (//toplevel//[8,114+24]..[8,114+25]) Pexp_ident "y" (//toplevel//[8,114+24]..[8,114+25]) ] ] structure_item (//toplevel//[9,140+0]..[9,140+33]) Pstr_value Nonrec [ pattern (//toplevel//[9,140+4]..[9,140+15]) Ppat_var ".%.{}<-" (//toplevel//[9,140+4]..[9,140+15]) expression (//toplevel//[9,140+16]..[9,140+33]) ghost Pexp_function [ Pparam_val (//toplevel//[9,140+16]..[9,140+17]) Nolabel None pattern (//toplevel//[9,140+16]..[9,140+17]) Ppat_var "x" (//toplevel//[9,140+16]..[9,140+17]) Pparam_val (//toplevel//[9,140+18]..[9,140+19]) Nolabel None pattern (//toplevel//[9,140+18]..[9,140+19]) Ppat_var "y" (//toplevel//[9,140+18]..[9,140+19]) Pparam_val (//toplevel//[9,140+20]..[9,140+21]) Nolabel None pattern (//toplevel//[9,140+20]..[9,140+21]) Ppat_var "z" (//toplevel//[9,140+20]..[9,140+21]) ] None Pfunction_body expression (//toplevel//[9,140+24]..[9,140+33]) Pexp_apply expression (//toplevel//[9,140+30]..[9,140+31]) Pexp_ident "+" (//toplevel//[9,140+30]..[9,140+31]) [ Nolabel expression (//toplevel//[9,140+24]..[9,140+29]) Pexp_apply expression (//toplevel//[9,140+26]..[9,140+27]) Pexp_ident "+" (//toplevel//[9,140+26]..[9,140+27]) [ Nolabel expression (//toplevel//[9,140+24]..[9,140+25]) Pexp_ident "x" (//toplevel//[9,140+24]..[9,140+25]) Nolabel expression (//toplevel//[9,140+28]..[9,140+29]) Pexp_ident "y" (//toplevel//[9,140+28]..[9,140+29]) ] Nolabel expression (//toplevel//[9,140+32]..[9,140+33]) Pexp_ident "z" (//toplevel//[9,140+32]..[9,140+33]) ] ] structure_item (//toplevel//[10,174+0]..[10,174+25]) Pstr_value Nonrec [ pattern (//toplevel//[10,174+4]..[10,174+13]) Ppat_var ".%.[]" (//toplevel//[10,174+4]..[10,174+13]) expression (//toplevel//[10,174+14]..[10,174+25]) ghost Pexp_function [ Pparam_val (//toplevel//[10,174+14]..[10,174+15]) Nolabel None pattern (//toplevel//[10,174+14]..[10,174+15]) Ppat_var "x" (//toplevel//[10,174+14]..[10,174+15]) Pparam_val (//toplevel//[10,174+16]..[10,174+17]) Nolabel None pattern (//toplevel//[10,174+16]..[10,174+17]) Ppat_var "y" (//toplevel//[10,174+16]..[10,174+17]) ] None Pfunction_body expression (//toplevel//[10,174+20]..[10,174+25]) Pexp_apply expression (//toplevel//[10,174+22]..[10,174+23]) Pexp_ident "+" (//toplevel//[10,174+22]..[10,174+23]) [ Nolabel expression (//toplevel//[10,174+20]..[10,174+21]) Pexp_ident "x" (//toplevel//[10,174+20]..[10,174+21]) Nolabel expression (//toplevel//[10,174+24]..[10,174+25]) Pexp_ident "y" (//toplevel//[10,174+24]..[10,174+25]) ] ] structure_item (//toplevel//[11,200+0]..[11,200+33]) Pstr_value Nonrec [ pattern (//toplevel//[11,200+4]..[11,200+15]) Ppat_var ".%.[]<-" (//toplevel//[11,200+4]..[11,200+15]) expression (//toplevel//[11,200+16]..[11,200+33]) ghost Pexp_function [ Pparam_val (//toplevel//[11,200+16]..[11,200+17]) Nolabel None pattern (//toplevel//[11,200+16]..[11,200+17]) Ppat_var "x" (//toplevel//[11,200+16]..[11,200+17]) Pparam_val (//toplevel//[11,200+18]..[11,200+19]) Nolabel None pattern (//toplevel//[11,200+18]..[11,200+19]) Ppat_var "y" (//toplevel//[11,200+18]..[11,200+19]) Pparam_val (//toplevel//[11,200+20]..[11,200+21]) Nolabel None pattern (//toplevel//[11,200+20]..[11,200+21]) Ppat_var "z" (//toplevel//[11,200+20]..[11,200+21]) ] None Pfunction_body expression (//toplevel//[11,200+24]..[11,200+33]) Pexp_apply expression (//toplevel//[11,200+30]..[11,200+31]) Pexp_ident "+" (//toplevel//[11,200+30]..[11,200+31]) [ Nolabel expression (//toplevel//[11,200+24]..[11,200+29]) Pexp_apply expression (//toplevel//[11,200+26]..[11,200+27]) Pexp_ident "+" (//toplevel//[11,200+26]..[11,200+27]) [ Nolabel expression (//toplevel//[11,200+24]..[11,200+25]) Pexp_ident "x" (//toplevel//[11,200+24]..[11,200+25]) Nolabel expression (//toplevel//[11,200+28]..[11,200+29]) Pexp_ident "y" (//toplevel//[11,200+28]..[11,200+29]) ] Nolabel expression (//toplevel//[11,200+32]..[11,200+33]) Pexp_ident "z" (//toplevel//[11,200+32]..[11,200+33]) ] ] ] val ( .@() ) : int -> int -> int = val ( .@()<- ) : int -> int -> int -> int = val ( .%.{} ) : int -> int -> int = val ( .%.{}<- ) : int -> int -> int -> int = val ( .%.[] ) : int -> int -> int = val ( .%.[]<- ) : int -> int -> int -> int = Ptop_def [ structure_item (//toplevel//[4,27+0]..[4,27+6]) Pstr_eval expression (//toplevel//[4,27+0]..[4,27+6]) Pexp_apply expression (//toplevel//[4,27+0]..[4,27+6]) ghost Pexp_ident ".@()" (//toplevel//[4,27+0]..[4,27+6]) ghost [ Nolabel expression (//toplevel//[4,27+0]..[4,27+1]) Pexp_ident "x" (//toplevel//[4,27+0]..[4,27+1]) Nolabel expression (//toplevel//[4,27+4]..[4,27+5]) Pexp_constant constant (//toplevel//[4,27+4]..[4,27+5]) PConst_int (4,None) ] ] - : int = 8 Ptop_def [ structure_item (//toplevel//[1,0+0]..[1,0+11]) Pstr_eval expression (//toplevel//[1,0+0]..[1,0+11]) Pexp_apply expression (//toplevel//[1,0+0]..[1,0+11]) ghost Pexp_ident ".@()<-" (//toplevel//[1,0+0]..[1,0+11]) ghost [ Nolabel expression (//toplevel//[1,0+0]..[1,0+1]) Pexp_ident "x" (//toplevel//[1,0+0]..[1,0+1]) Nolabel expression (//toplevel//[1,0+4]..[1,0+5]) Pexp_constant constant (//toplevel//[1,0+4]..[1,0+5]) PConst_int (4,None) Nolabel expression (//toplevel//[1,0+10]..[1,0+11]) Pexp_constant constant (//toplevel//[1,0+10]..[1,0+11]) PConst_int (4,None) ] ] - : int = 12 Ptop_def [ structure_item (//toplevel//[2,1+0]..[2,1+7]) Pstr_eval expression (//toplevel//[2,1+0]..[2,1+7]) Pexp_apply expression (//toplevel//[2,1+0]..[2,1+7]) ghost Pexp_ident ".%.{}" (//toplevel//[2,1+0]..[2,1+7]) ghost [ Nolabel expression (//toplevel//[2,1+0]..[2,1+1]) Pexp_ident "x" (//toplevel//[2,1+0]..[2,1+1]) Nolabel expression (//toplevel//[2,1+5]..[2,1+6]) Pexp_constant constant (//toplevel//[2,1+5]..[2,1+6]) PConst_int (4,None) ] ] - : int = 8 Ptop_def [ structure_item (//toplevel//[1,0+0]..[1,0+12]) Pstr_eval expression (//toplevel//[1,0+0]..[1,0+12]) Pexp_apply expression (//toplevel//[1,0+0]..[1,0+12]) ghost Pexp_ident ".%.{}<-" (//toplevel//[1,0+0]..[1,0+12]) ghost [ Nolabel expression (//toplevel//[1,0+0]..[1,0+1]) Pexp_ident "x" (//toplevel//[1,0+0]..[1,0+1]) Nolabel expression (//toplevel//[1,0+5]..[1,0+6]) Pexp_constant constant (//toplevel//[1,0+5]..[1,0+6]) PConst_int (4,None) Nolabel expression (//toplevel//[1,0+11]..[1,0+12]) Pexp_constant constant (//toplevel//[1,0+11]..[1,0+12]) PConst_int (4,None) ] ] - : int = 12 Ptop_def [ structure_item (//toplevel//[2,1+0]..[2,1+7]) Pstr_eval expression (//toplevel//[2,1+0]..[2,1+7]) Pexp_apply expression (//toplevel//[2,1+0]..[2,1+7]) ghost Pexp_ident ".%.[]" (//toplevel//[2,1+0]..[2,1+7]) ghost [ Nolabel expression (//toplevel//[2,1+0]..[2,1+1]) Pexp_ident "x" (//toplevel//[2,1+0]..[2,1+1]) Nolabel expression (//toplevel//[2,1+5]..[2,1+6]) Pexp_constant constant (//toplevel//[2,1+5]..[2,1+6]) PConst_int (4,None) ] ] - : int = 8 Ptop_def [ structure_item (//toplevel//[1,0+0]..[1,0+12]) Pstr_eval expression (//toplevel//[1,0+0]..[1,0+12]) Pexp_apply expression (//toplevel//[1,0+0]..[1,0+12]) ghost Pexp_ident ".%.[]<-" (//toplevel//[1,0+0]..[1,0+12]) ghost [ Nolabel expression (//toplevel//[1,0+0]..[1,0+1]) Pexp_ident "x" (//toplevel//[1,0+0]..[1,0+1]) Nolabel expression (//toplevel//[1,0+5]..[1,0+6]) Pexp_constant constant (//toplevel//[1,0+5]..[1,0+6]) PConst_int (4,None) Nolabel expression (//toplevel//[1,0+11]..[1,0+12]) Pexp_constant constant (//toplevel//[1,0+11]..[1,0+12]) PConst_int (4,None) ] ] - : int = 12 Ptop_def [ structure_item (//toplevel//[4,28+0]..[4,28+37]) Pstr_value Nonrec [ pattern (//toplevel//[4,28+4]..[4,28+5]) Ppat_var "f" (//toplevel//[4,28+4]..[4,28+5]) expression (//toplevel//[4,28+8]..[4,28+37]) Pexp_function [] None Pfunction_cases (//toplevel//[4,28+8]..[4,28+37]) [ pattern (//toplevel//[4,28+17]..[4,28+31]) Ppat_constraint pattern (//toplevel//[4,28+25]..[4,28+26]) Ppat_unpack "M" (//toplevel//[4,28+25]..[4,28+26]) core_type (//toplevel//[4,28+29]..[4,28+30]) Ptyp_package package_type "S" (//toplevel//[4,28+29]..[4,28+30]) [] expression (//toplevel//[4,28+35]..[4,28+37]) Pexp_construct "()" (//toplevel//[4,28+35]..[4,28+37]) None ] ] ] val f : (module S) -> unit = Ptop_def [ structure_item (//toplevel//[4,45+0]..[6,71+12]) Pstr_class [ class_declaration (//toplevel//[4,45+0]..[6,71+12]) pci_virt = Concrete pci_params = [] pci_name = "c" (//toplevel//[4,45+6]..[4,45+7]) pci_expr = class_expr (//toplevel//[5,55+2]..[6,71+12]) Pcl_open Fresh "M" (//toplevel//[5,55+11]..[5,55+12]) class_expr (//toplevel//[6,71+2]..[6,71+12]) Pcl_structure class_structure pattern (//toplevel//[6,71+8]..[6,71+8]) ghost Ppat_any [] ] ] class c : object end Ptop_def [ structure_item (//toplevel//[2,1+0]..[4,33+12]) Pstr_class_type [ class_type_declaration (//toplevel//[2,1+0]..[4,33+12]) pci_virt = Concrete pci_params = [] pci_name = "ct" (//toplevel//[2,1+11]..[2,1+13]) pci_expr = class_type (//toplevel//[3,17+2]..[4,33+12]) Pcty_open Fresh "M" (//toplevel//[3,17+11]..[3,17+12]) class_type (//toplevel//[4,33+2]..[4,33+12]) Pcty_signature class_signature core_type (//toplevel//[4,33+8]..[4,33+8]) ghost Ptyp_any [] ] ] class type ct = object end Ptop_def [ structure_item (//toplevel//[5,56+0]..[6,64+4]) Pstr_value Nonrec [ attribute "ocaml.doc" [ structure_item (//toplevel//[4,19+0]..[4,19+36]) Pstr_eval expression (//toplevel//[4,19+0]..[4,19+36]) Pexp_constant constant (//toplevel//[4,19+0]..[4,19+36]) PConst_string(" Some docstring attached to x. ",(//toplevel//[4,19+0]..[4,19+36]),None) ] attribute "ocaml.doc" [ structure_item (//toplevel//[7,69+0]..[7,69+39]) Pstr_eval expression (//toplevel//[7,69+0]..[7,69+39]) Pexp_constant constant (//toplevel//[7,69+0]..[7,69+39]) PConst_string(" Another docstring attached to x. ",(//toplevel//[7,69+0]..[7,69+39]),None) ] pattern (//toplevel//[5,56+4]..[5,56+5]) Ppat_var "x" (//toplevel//[5,56+4]..[5,56+5]) expression (//toplevel//[6,64+2]..[6,64+4]) Pexp_constant constant (//toplevel//[6,64+2]..[6,64+4]) PConst_int (42,None) ] ] val x : int = 42 Ptop_def [ structure_item (//toplevel//[3,56+0]..[3,56+31]) Pstr_value Nonrec [ pattern (//toplevel//[3,56+4]..[3,56+5]) Ppat_var "x" (//toplevel//[3,56+4]..[3,56+5]) expression (//toplevel//[3,56+8]..[3,56+31]) Pexp_object class_structure pattern (//toplevel//[3,56+14]..[3,56+14]) ghost Ppat_any [ class_field (//toplevel//[3,56+15]..[3,56+27]) Pcf_method Public "f" (//toplevel//[3,56+22]..[3,56+23]) Concrete Fresh expression (//toplevel//[3,56+26]..[3,56+27]) ghost Pexp_poly expression (//toplevel//[3,56+26]..[3,56+27]) Pexp_constant constant (//toplevel//[3,56+26]..[3,56+27]) PConst_int (1,None) None ] ] ] val x : < f : int > = Ptop_def [ structure_item (//toplevel//[1,0+0]..[1,0+35]) Pstr_value Nonrec [ pattern (//toplevel//[1,0+4]..[1,0+5]) Ppat_var "x" (//toplevel//[1,0+4]..[1,0+5]) expression (//toplevel//[1,0+8]..[1,0+35]) Pexp_send "f" expression (//toplevel//[1,0+8]..[1,0+31]) Pexp_object class_structure pattern (//toplevel//[1,0+14]..[1,0+14]) ghost Ppat_any [ class_field (//toplevel//[1,0+15]..[1,0+27]) Pcf_method Public "f" (//toplevel//[1,0+22]..[1,0+23]) Concrete Fresh expression (//toplevel//[1,0+26]..[1,0+27]) ghost Pexp_poly expression (//toplevel//[1,0+26]..[1,0+27]) Pexp_constant constant (//toplevel//[1,0+26]..[1,0+27]) PConst_int (1,None) None ] ] ] val x : int = 1 Ptop_def [ structure_item (//toplevel//[1,0+0]..[1,0+36]) Pstr_value Nonrec [ pattern (//toplevel//[1,0+4]..[1,0+5]) Ppat_var "x" (//toplevel//[1,0+4]..[1,0+5]) expression (//toplevel//[1,0+8]..[1,0+36]) Pexp_construct "Some" (//toplevel//[1,0+8]..[1,0+12]) Some expression (//toplevel//[1,0+13]..[1,0+36]) Pexp_object class_structure pattern (//toplevel//[1,0+19]..[1,0+19]) ghost Ppat_any [ class_field (//toplevel//[1,0+20]..[1,0+32]) Pcf_method Public "f" (//toplevel//[1,0+27]..[1,0+28]) Concrete Fresh expression (//toplevel//[1,0+31]..[1,0+32]) ghost Pexp_poly expression (//toplevel//[1,0+31]..[1,0+32]) Pexp_constant constant (//toplevel//[1,0+31]..[1,0+32]) PConst_int (1,None) None ] ] ] val x : < f : int > option = Some Ptop_def [ structure_item (//toplevel//[1,0+0]..[1,0+40]) Pstr_value Nonrec [ pattern (//toplevel//[1,0+4]..[1,0+5]) Ppat_var "x" (//toplevel//[1,0+4]..[1,0+5]) expression (//toplevel//[1,0+8]..[1,0+40]) Pexp_construct "Some" (//toplevel//[1,0+8]..[1,0+12]) Some expression (//toplevel//[1,0+13]..[1,0+40]) Pexp_send "f" expression (//toplevel//[1,0+13]..[1,0+36]) Pexp_object class_structure pattern (//toplevel//[1,0+19]..[1,0+19]) ghost Ppat_any [ class_field (//toplevel//[1,0+20]..[1,0+32]) Pcf_method Public "f" (//toplevel//[1,0+27]..[1,0+28]) Concrete Fresh expression (//toplevel//[1,0+31]..[1,0+32]) ghost Pexp_poly expression (//toplevel//[1,0+31]..[1,0+32]) Pexp_constant constant (//toplevel//[1,0+31]..[1,0+32]) PConst_int (1,None) None ] ] ] val x : int option = Some 1 Ptop_def [ structure_item (//toplevel//[2,1+0]..[5,76+12]) Pstr_eval expression (//toplevel//[2,1+0]..[5,76+12]) Pexp_let Nonrec [ pattern (//toplevel//[2,1+4]..[2,1+5]) Ppat_var "f" (//toplevel//[2,1+4]..[2,1+5]) expression (//toplevel//[2,1+6]..[2,1+15]) ghost Pexp_function [ Pparam_val (//toplevel//[2,1+6]..[2,1+7]) Nolabel None pattern (//toplevel//[2,1+6]..[2,1+7]) Ppat_var "x" (//toplevel//[2,1+6]..[2,1+7]) Pparam_val (//toplevel//[2,1+8]..[2,1+9]) Nolabel None pattern (//toplevel//[2,1+8]..[2,1+9]) Ppat_var "y" (//toplevel//[2,1+8]..[2,1+9]) Pparam_val (//toplevel//[2,1+10]..[2,1+11]) Nolabel None pattern (//toplevel//[2,1+10]..[2,1+11]) Ppat_var "z" (//toplevel//[2,1+10]..[2,1+11]) ] None Pfunction_body expression (//toplevel//[2,1+14]..[2,1+15]) Pexp_ident "x" (//toplevel//[2,1+14]..[2,1+15]) ] expression (//toplevel//[3,20+0]..[5,76+12]) Pexp_apply expression (//toplevel//[3,20+0]..[3,20+1]) Pexp_ident "f" (//toplevel//[3,20+0]..[3,20+1]) [ Nolabel expression (//toplevel//[3,20+2]..[3,20+25]) Pexp_object class_structure pattern (//toplevel//[3,20+8]..[3,20+8]) ghost Ppat_any [ class_field (//toplevel//[3,20+9]..[3,20+21]) Pcf_method Public "f" (//toplevel//[3,20+16]..[3,20+17]) Concrete Fresh expression (//toplevel//[3,20+20]..[3,20+21]) ghost Pexp_poly expression (//toplevel//[3,20+20]..[3,20+21]) Pexp_constant constant (//toplevel//[3,20+20]..[3,20+21]) PConst_int (1,None) None ] Nolabel expression (//toplevel//[4,46+2]..[4,46+29]) Pexp_send "f" expression (//toplevel//[4,46+2]..[4,46+25]) Pexp_object class_structure pattern (//toplevel//[4,46+8]..[4,46+8]) ghost Ppat_any [ class_field (//toplevel//[4,46+9]..[4,46+21]) Pcf_method Public "f" (//toplevel//[4,46+16]..[4,46+17]) Concrete Fresh expression (//toplevel//[4,46+20]..[4,46+21]) ghost Pexp_poly expression (//toplevel//[4,46+20]..[4,46+21]) Pexp_constant constant (//toplevel//[4,46+20]..[4,46+21]) PConst_int (1,None) None ] Nolabel expression (//toplevel//[5,76+2]..[5,76+12]) Pexp_object class_structure pattern (//toplevel//[5,76+8]..[5,76+8]) ghost Ppat_any [] ] ] - : < f : int > = Ptop_def [ structure_item (//toplevel//[3,66+0]..[5,98+12]) Pstr_value Nonrec [ pattern (//toplevel//[3,66+4]..[3,66+5]) Ppat_var "g" (//toplevel//[3,66+4]..[3,66+5]) expression (//toplevel//[3,66+6]..[5,98+12]) ghost Pexp_function [ Pparam_val (//toplevel//[3,66+6]..[3,66+7]) Nolabel None pattern (//toplevel//[3,66+6]..[3,66+7]) Ppat_var "y" (//toplevel//[3,66+6]..[3,66+7]) ] None Pfunction_body expression (//toplevel//[4,76+2]..[5,98+12]) Pexp_let Nonrec [ pattern (//toplevel//[4,76+6]..[4,76+7]) Ppat_var "f" (//toplevel//[4,76+6]..[4,76+7]) expression (//toplevel//[4,76+8]..[4,76+18]) ghost Pexp_function [ Pparam_val (//toplevel//[4,76+8]..[4,76+10]) Labelled "y" None pattern (//toplevel//[4,76+9]..[4,76+10]) Ppat_var "y" (//toplevel//[4,76+9]..[4,76+10]) ] None Pfunction_body expression (//toplevel//[4,76+13]..[4,76+18]) Pexp_apply expression (//toplevel//[4,76+15]..[4,76+16]) Pexp_ident "+" (//toplevel//[4,76+15]..[4,76+16]) [ Nolabel expression (//toplevel//[4,76+13]..[4,76+14]) Pexp_ident "y" (//toplevel//[4,76+13]..[4,76+14]) Nolabel expression (//toplevel//[4,76+17]..[4,76+18]) Pexp_constant constant (//toplevel//[4,76+17]..[4,76+18]) PConst_int (1,None) ] ] expression (//toplevel//[5,98+2]..[5,98+12]) Pexp_apply expression (//toplevel//[5,98+2]..[5,98+3]) Pexp_ident "f" (//toplevel//[5,98+2]..[5,98+3]) [ Labelled "y" expression (//toplevel//[5,98+5]..[5,98+12]) Pexp_constraint expression (//toplevel//[5,98+6]..[5,98+7]) Pexp_ident "y" (//toplevel//[5,98+6]..[5,98+7]) core_type (//toplevel//[5,98+8]..[5,98+11]) Ptyp_constr "int" (//toplevel//[5,98+8]..[5,98+11]) [] ] ] ] val g : int -> int =