summaryrefslogtreecommitdiff
path: root/typing/predef.ml
diff options
context:
space:
mode:
Diffstat (limited to 'typing/predef.ml')
-rw-r--r--typing/predef.ml187
1 files changed, 0 insertions, 187 deletions
diff --git a/typing/predef.ml b/typing/predef.ml
deleted file mode 100644
index 436d48d237..0000000000
--- a/typing/predef.ml
+++ /dev/null
@@ -1,187 +0,0 @@
-(***********************************************************************)
-(* *)
-(* Objective Caml *)
-(* *)
-(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
-(* *)
-(* Copyright 1996 Institut National de Recherche en Informatique et *)
-(* en Automatique. All rights reserved. This file is distributed *)
-(* under the terms of the Q Public License version 1.0. *)
-(* *)
-(***********************************************************************)
-
-(* $Id$ *)
-
-(* Predefined type constructors (with special typing rules in typecore) *)
-
-open Asttypes
-open Path
-open Types
-open Btype
-
-let ident_int = Ident.create "int"
-and ident_char = Ident.create "char"
-and ident_string = Ident.create "string"
-and ident_float = Ident.create "float"
-and ident_bool = Ident.create "bool"
-and ident_unit = Ident.create "unit"
-and ident_exn = Ident.create "exn"
-and ident_array = Ident.create "array"
-and ident_list = Ident.create "list"
-and ident_format4 = Ident.create "format4"
-and ident_option = Ident.create "option"
-and ident_nativeint = Ident.create "nativeint"
-and ident_int32 = Ident.create "int32"
-and ident_int64 = Ident.create "int64"
-and ident_lazy_t = Ident.create "lazy_t"
-
-let path_int = Pident ident_int
-and path_char = Pident ident_char
-and path_string = Pident ident_string
-and path_float = Pident ident_float
-and path_bool = Pident ident_bool
-and path_unit = Pident ident_unit
-and path_exn = Pident ident_exn
-and path_array = Pident ident_array
-and path_list = Pident ident_list
-and path_format4 = Pident ident_format4
-and path_option = Pident ident_option
-and path_nativeint = Pident ident_nativeint
-and path_int32 = Pident ident_int32
-and path_int64 = Pident ident_int64
-and path_lazy_t = Pident ident_lazy_t
-
-let type_int = newgenty (Tconstr(path_int, [], ref Mnil))
-and type_char = newgenty (Tconstr(path_char, [], ref Mnil))
-and type_string = newgenty (Tconstr(path_string, [], ref Mnil))
-and type_float = newgenty (Tconstr(path_float, [], ref Mnil))
-and type_bool = newgenty (Tconstr(path_bool, [], ref Mnil))
-and type_unit = newgenty (Tconstr(path_unit, [], ref Mnil))
-and type_exn = newgenty (Tconstr(path_exn, [], ref Mnil))
-and type_array t = newgenty (Tconstr(path_array, [t], ref Mnil))
-and type_list t = newgenty (Tconstr(path_list, [t], ref Mnil))
-and type_option t = newgenty (Tconstr(path_option, [t], ref Mnil))
-and type_nativeint = newgenty (Tconstr(path_nativeint, [], ref Mnil))
-and type_int32 = newgenty (Tconstr(path_int32, [], ref Mnil))
-and type_int64 = newgenty (Tconstr(path_int64, [], ref Mnil))
-and type_lazy_t t = newgenty (Tconstr(path_lazy_t, [t], ref Mnil))
-
-let ident_match_failure = Ident.create "Match_failure"
-and ident_out_of_memory = Ident.create "Out_of_memory"
-and ident_invalid_argument = Ident.create "Invalid_argument"
-and ident_failure = Ident.create "Failure"
-and ident_not_found = Ident.create "Not_found"
-and ident_sys_error = Ident.create "Sys_error"
-and ident_end_of_file = Ident.create "End_of_file"
-and ident_division_by_zero = Ident.create "Division_by_zero"
-and ident_stack_overflow = Ident.create "Stack_overflow"
-and ident_sys_blocked_io = Ident.create "Sys_blocked_io"
-and ident_assert_failure = Ident.create "Assert_failure"
-and ident_undefined_recursive_module = Ident.create "Undefined_recursive_module"
-
-let path_match_failure = Pident ident_match_failure
-and path_assert_failure = Pident ident_assert_failure
-and path_undefined_recursive_module = Pident ident_undefined_recursive_module
-
-let build_initial_env add_type add_exception empty_env =
- let decl_abstr =
- {type_params = [];
- type_arity = 0;
- type_kind = Type_abstract;
- type_manifest = None;
- type_variance = []}
- and decl_bool =
- {type_params = [];
- type_arity = 0;
- type_kind = Type_variant(["false",[]; "true",[]], Public);
- type_manifest = None;
- type_variance = []}
- and decl_unit =
- {type_params = [];
- type_arity = 0;
- type_kind = Type_variant(["()",[]], Public);
- type_manifest = None;
- type_variance = []}
- and decl_exn =
- {type_params = [];
- type_arity = 0;
- type_kind = Type_variant([], Public);
- type_manifest = None;
- type_variance = []}
- and decl_array =
- let tvar = newgenvar() in
- {type_params = [tvar];
- type_arity = 1;
- type_kind = Type_abstract;
- type_manifest = None;
- type_variance = [true, true, true]}
- and decl_list =
- let tvar = newgenvar() in
- {type_params = [tvar];
- type_arity = 1;
- type_kind =
- Type_variant(["[]", []; "::", [tvar; type_list tvar]], Public);
- type_manifest = None;
- type_variance = [true, false, false]}
- and decl_format4 =
- {type_params = [newgenvar(); newgenvar(); newgenvar(); newgenvar()];
- type_arity = 4;
- type_kind = Type_abstract;
- type_manifest = None;
- type_variance = [true, true, true; true, true, true;
- true, true, true; true, true, true]}
- and decl_option =
- let tvar = newgenvar() in
- {type_params = [tvar];
- type_arity = 1;
- type_kind = Type_variant(["None", []; "Some", [tvar]], Public);
- type_manifest = None;
- type_variance = [true, false, false]}
- and decl_lazy_t =
- let tvar = newgenvar() in
- {type_params = [tvar];
- type_arity = 1;
- type_kind = Type_abstract;
- type_manifest = None;
- type_variance = [true, false, false]}
- in
-
- add_exception ident_match_failure
- [newgenty (Ttuple[type_string; type_int; type_int])] (
- add_exception ident_out_of_memory [] (
- add_exception ident_stack_overflow [] (
- add_exception ident_invalid_argument [type_string] (
- add_exception ident_failure [type_string] (
- add_exception ident_not_found [] (
- add_exception ident_sys_blocked_io [] (
- add_exception ident_sys_error [type_string] (
- add_exception ident_end_of_file [] (
- add_exception ident_division_by_zero [] (
- add_exception ident_assert_failure
- [newgenty (Ttuple[type_string; type_int; type_int])] (
- add_exception ident_undefined_recursive_module
- [newgenty (Ttuple[type_string; type_int; type_int])] (
- add_type ident_int64 decl_abstr (
- add_type ident_int32 decl_abstr (
- add_type ident_nativeint decl_abstr (
- add_type ident_lazy_t decl_lazy_t (
- add_type ident_option decl_option (
- add_type ident_format4 decl_format4 (
- add_type ident_list decl_list (
- add_type ident_array decl_array (
- add_type ident_exn decl_exn (
- add_type ident_unit decl_unit (
- add_type ident_bool decl_bool (
- add_type ident_float decl_abstr (
- add_type ident_string decl_abstr (
- add_type ident_char decl_abstr (
- add_type ident_int decl_abstr (
- empty_env)))))))))))))))))))))))))))
-
-let builtin_values =
- List.map (fun id -> Ident.make_global id; (Ident.name id, id))
- [ident_match_failure; ident_out_of_memory; ident_stack_overflow;
- ident_invalid_argument;
- ident_failure; ident_not_found; ident_sys_error; ident_end_of_file;
- ident_division_by_zero; ident_sys_blocked_io;
- ident_assert_failure; ident_undefined_recursive_module ]