1.1 --- a/src/Tools/isac/calcelems.sml Thu Jun 19 08:12:08 2014 +0200
1.2 +++ b/src/Tools/isac/calcelems.sml Thu Jun 19 08:15:50 2014 +0200
1.3 @@ -879,23 +879,22 @@
1.4 "consider setting 'check_guhs_unique := false'")
1.5 else ();
1.6
1.7 -fun insrt _ pbt [k] [] = [Ptyp (k, [pbt],[])]
1.8 - | insrt d pbt [k] ((Ptyp (k', [p], ps))::pys) =
1.9 -((*tracing("### insert 1: ks = "^(strs2str [k])^" k'= "^k');*)
1.10 - if k=k'
1.11 - then ((Ptyp (k', [pbt], ps))::pys)
1.12 - else (*ev.newly added pbt is free _only_ with 'last_elem pblID'*)
1.13 - ((Ptyp (k', [p], ps))::(insrt d pbt [k] pys))
1.14 -)
1.15 +fun insrt _ pbt [k] [] = [Ptyp (k, [pbt], [])]
1.16 + | insrt d pbt [k] ((Ptyp (k', [p], ps)) :: pys) =
1.17 + ((*writeln ("### insert 1: ks = " ^ strs2str [k] ^ " k'= " ^ k');*)
1.18 + if k = k'
1.19 + then ((Ptyp (k', [pbt], ps)) :: pys)
1.20 + else ((Ptyp (k', [p], ps)) :: (insrt d pbt [k] pys))
1.21 + )
1.22 | insrt d pbt (k::ks) ((Ptyp (k', [p], ps))::pys) =
1.23 -((*tracing("### insert 2: ks = "^(strs2str (k::ks))^" k'= "^k');*)
1.24 - if k=k'
1.25 - then ((Ptyp (k', [p], insrt d pbt ks ps))::pys)
1.26 - else
1.27 - if length pys = 0
1.28 - then error ("insert: not found "^(strs2str (d:pblID)))
1.29 - else ((Ptyp (k', [p], ps))::(insrt d pbt (k::ks) pys))
1.30 -);
1.31 + ((*writeln ("### insert 2: ks = "^(strs2str (k::ks))^" k'= "^k');*)
1.32 + if k = k'
1.33 + then ((Ptyp (k', [p], insrt d pbt ks ps)) :: pys)
1.34 + else
1.35 + if length pys = 0
1.36 + then error ("insert: not found " ^ (strs2str (d : pblID)))
1.37 + else ((Ptyp (k', [p], ps)) :: (insrt d pbt (k :: ks) pys))
1.38 + );
1.39
1.40 fun update_ptyps ID _ _ [] =
1.41 error ("update_ptyps: " ^ strs2str' ID ^ " does not exist")