Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
Eq
defines primitives for equivalence for type t
In order for a module to implement Eq
, it has to conform to the T
signature, which implies conformance to PartialEq.T
. In fact, Eq
builds on top of it and simplity denotes that in addition to symmetricity and transitivity properties, reflexivity property is to be observed (eq a a
)
module type Trait = sig ... end
Eq
implementation signature
module type T = sig ... end
Signature that defines Eq
conformity
Defines a default implementation of Trait
over an existing PartialEq.Trait
definition
val eq :
(module T
with type Eq.t = 'a
and type PartialEq.rhs = 'a0
and type PartialEq.t = 'a1) ->
'a2 ->
'a3 ->
bool
Tests x
and y
to be equal with a module M
that implements signature T
val ne :
(module T with type PartialEq.rhs = 'a and type PartialEq.t = 'a0) ->
'a1 ->
'a2 ->
bool
Tests x
and y
to be unequal with a module M
that implements signature T