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