Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Page
Library
Module
Module type
Parameter
Class
Class type
Source
predef.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
(* Table of predefined types. *) open Ast let list_def : type_def = let loc = dummy_loc in ( loc, ("list", ["a"], []), List (loc, Tvar (loc, "a"), []) ) let option_def : type_def = let loc = dummy_loc in ( loc, ("option", ["a"], []), Option (loc, Tvar (loc, "a"), []) ) let nullable_def : type_def = let loc = dummy_loc in ( loc, ("nullable", ["a"], []), Nullable (loc, Tvar (loc, "a"), []) ) let : type_def = let loc = dummy_loc in ( loc, ("shared", ["a"], []), Shared (loc, Tvar (loc, "a"), []) ) let wrap_def : type_def = let loc = dummy_loc in ( loc, ("wrap", ["a"], []), Wrap (loc, Tvar (loc, "a"), []) ) let list = [ "unit", 0, None; "bool", 0, None; "int", 0, None; "float", 0, None; "string", 0, None; "abstract", 0, None; "list", 1, Some list_def; "option", 1, Some option_def; "nullable", 1, Some nullable_def; "shared", 1, Some shared_def; "wrap", 1, Some wrap_def; ] let make_table () = let tbl = Hashtbl.create 20 in List.iter ( fun (k, n, opt_t) -> Hashtbl.add tbl k (n, opt_t) ) list; tbl