package ocaml-compiler
Official release of OCaml 5.3.0
Install
Dune Dependency
Authors
Maintainers
Sources
ocaml-5.3.0.tar.gz
sha256=22c1dd9de21bf43b62d1909041fb5fad648905227bf69550a6a6bef31e654f38
doc/compiler-libs.common/Includecore/index.html
Module Includecore
type primitive_mismatch =
| Name
| Arity
| No_alloc of position
| Native_name
| Result_repr
| Argument_repr of int
type value_mismatch =
| Primitive_mismatch of primitive_mismatch
| Not_a_primitive
| Type of Errortrace.moregen_error
exception Dont_match of value_mismatch
type record_change =
(Types.label_declaration as 'ld, 'ld, label_mismatch)
Diffing_with_keys.change
type record_mismatch =
| Label_mismatch of record_change list
| Unboxed_float_representation of position
type constructor_mismatch =
| Type of Errortrace.equality_error
| Arity
| Inline_record of record_change list
| Kind of position
| Explicit_return_type of position
type extension_constructor_mismatch =
| Constructor_privacy
| Constructor_mismatch of Ident.t * Types.extension_constructor * Types.extension_constructor * constructor_mismatch
type variant_change =
(Types.constructor_declaration as 'cd, 'cd, constructor_mismatch)
Diffing_with_keys.change
type private_variant_mismatch =
| Only_outer_closed
| Missing of position * string
| Presence of string
| Incompatible_types_for of string
| Types of Errortrace.equality_error
type type_mismatch =
| Arity
| Privacy of privacy_mismatch
| Kind of kind_mismatch
| Constraint of Errortrace.equality_error
| Manifest of Errortrace.equality_error
| Private_variant of Types.type_expr * Types.type_expr * private_variant_mismatch
| Private_object of Types.type_expr * Types.type_expr * private_object_mismatch
| Variance
| Record_mismatch of record_mismatch
| Variant_mismatch of variant_change list
| Unboxed_representation of position
| Immediate of Type_immediacy.Violation.t
val value_descriptions :
loc:Location.t ->
Env.t ->
string ->
Types.value_description ->
Types.value_description ->
Typedtree.module_coercion
val type_declarations :
?equality:bool ->
loc:Location.t ->
Env.t ->
mark:bool ->
string ->
Types.type_declaration ->
Path.t ->
Types.type_declaration ->
type_mismatch option
val extension_constructors :
loc:Location.t ->
Env.t ->
mark:bool ->
Ident.t ->
Types.extension_constructor ->
Types.extension_constructor ->
extension_constructor_mismatch option
val value_descriptions_consistency :
Env.t ->
Types.value_description ->
Types.value_description ->
Typedtree.module_coercion
The functions value_descriptions_consistency
and type_declarations_consistency
check if two declaration are consistent. Declarations are consistent when there exists an environment such that the first declaration is a subtype of the second one.
Notably, if a type declaration td1
is consistent with td2
then a type expression te
which is well-formed with the td2
declaration in scope is still well-formed with the td1
declaration: E, td2 |- te
=> E, td1 |- te
.
val type_declarations_consistency :
Env.t ->
Types.type_declaration ->
Types.type_declaration ->
type_mismatch option
val report_value_mismatch :
string ->
string ->
Env.t ->
value_mismatch Format_doc.printer
val report_type_mismatch :
string ->
string ->
string ->
Env.t ->
type_mismatch Format_doc.printer
val report_extension_constructor_mismatch :
string ->
string ->
string ->
Env.t ->
extension_constructor_mismatch Format_doc.printer
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>