Commit 167000e1 authored by Andrei Paskevich's avatar Andrei Paskevich

add type information to every physical equality

parent db474433
......@@ -256,7 +256,7 @@ module Mpr = Prop.M
module Hpr = Prop.H
module Wpr = Prop.W
let pr_equal = (==)
let pr_equal : prsymbol -> prsymbol -> bool = (==)
let pr_hash pr = id_hash pr.pr_name
......@@ -352,7 +352,7 @@ module Sdecl = Decl.S
module Mdecl = Decl.M
module Wdecl = Decl.W
let d_equal = (==)
let d_equal : decl -> decl -> bool = (==)
let d_hash d = Hashweak.tag_hash d.d_tag
......
......@@ -51,7 +51,7 @@ module Hid = Id.H
type preid = ident
let id_equal = (==)
let id_equal : ident -> ident -> bool = (==)
let id_hash id = Hashweak.tag_hash id.id_tag
......
......@@ -48,7 +48,7 @@ let tds_empty = mk_tds Stdecl.empty
let tds_add td s = mk_tds (Stdecl.add td s.tds_set)
let tds_singleton td = mk_tds (Stdecl.singleton td)
let tds_equal = (==)
let tds_equal : tdecl_set -> tdecl_set -> bool = (==)
let tds_hash tds = Hashweak.tag_hash tds.tds_tag
type clone_map = tdecl_set Mid.t
......@@ -79,7 +79,7 @@ and task_hd = {
task_tag : Hashweak.tag; (* unique magical tag *)
}
let task_hd_equal = (==)
let task_hd_equal : task_hd -> task_hd -> bool = (==)
let task_hd_hash t = Hashweak.tag_hash t.task_tag
......
......@@ -37,7 +37,7 @@ module Svs = Vsym.S
module Mvs = Vsym.M
module Hvs = Vsym.H
let vs_equal = (==)
let vs_equal : vsymbol -> vsymbol -> bool = (==)
let vs_hash vs = id_hash vs.vs_name
......@@ -66,7 +66,7 @@ module Mls = Lsym.M
module Hls = Lsym.H
module Wls = Lsym.W
let ls_equal = (==)
let ls_equal : lsymbol -> lsymbol -> bool = (==)
let ls_hash ls = id_hash ls.ls_name
......@@ -102,7 +102,7 @@ and pattern_node =
| Por of pattern * pattern
| Pas of pattern * vsymbol
let pat_equal = (==)
let pat_equal : pattern -> pattern -> bool = (==)
let pat_hash p = p.pat_tag
......
......@@ -118,7 +118,7 @@ module Smeta = SMmeta.S
module Mmeta = SMmeta.M
module Hmeta = SMmeta.H
let meta_equal = (==)
let meta_equal : meta -> meta -> bool = (==)
let meta_hash m = m.meta_tag
......@@ -251,7 +251,7 @@ module Stdecl = Tdecl.S
module Mtdecl = Tdecl.M
module Htdecl = Tdecl.H
let td_equal = (==)
let td_equal : tdecl -> tdecl -> bool = (==)
let td_hash td = td.td_tag
(** Constructors and utilities *)
......
......@@ -35,7 +35,7 @@ module Stv = Tvar.S
module Mtv = Tvar.M
module Htv = Tvar.H
let tv_equal = (==)
let tv_equal : tvsymbol -> tvsymbol -> bool = (==)
let tv_hash tv = id_hash tv.tv_name
......
......@@ -16,7 +16,7 @@ type mtsymbol = {
mt_abstr : tysymbol;
}
let mt_equal = (==)
let mt_equal : mtsymbol -> mtsymbol -> bool = (==)
let mutable_types = Hts.create 17
......@@ -221,7 +221,7 @@ end = struct
let tyl, ty = uncurry_type ~logic:true v in
create_lsymbol name tyl (Some ty); }
let p_equal = (==)
let p_equal : psymbol -> psymbol -> bool = (==)
let create_pvsymbol name ?vs v =
{ pv_name = id_register name;
......
......@@ -112,7 +112,7 @@ let dummy_tag = {
tag_tag = -1;
}
let tag_equal = (==)
let tag_equal : tag -> tag -> bool = (==)
let tag_hash k = assert (k != dummy_tag); k.tag_tag
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment