equal
deleted
inserted
replaced
702 |> Graph.map_node m (Module o ensure ms o dest_modl) |
702 |> Graph.map_node m (Module o ensure ms o dest_modl) |
703 in ensure modl end; |
703 in ensure modl end; |
704 |
704 |
705 fun merge_module modl12 = |
705 fun merge_module modl12 = |
706 let |
706 let |
707 fun join_module (Module m1, Module m2) = |
707 fun join_module _ (Module m1, Module m2) = |
708 (SOME o Module) (merge_module (m1, m2)) |
708 Module (merge_module (m1, m2)) |
709 | join_module (Def d1, Def d2) = |
709 | join_module name (Def d1, Def d2) = |
710 if eq_def (d1, d2) then (SOME o Def) d1 else NONE |
710 if eq_def (d1, d2) then Def d1 else raise Graph.DUP name |
711 | join_module _ = |
711 | join_module name _ = raise Graph.DUP name |
712 NONE |
712 in Graph.join join_module modl12 end; |
713 in Graph.join (K join_module) modl12 end; |
|
714 |
713 |
715 fun partof names modl = |
714 fun partof names modl = |
716 let |
715 let |
717 datatype pathnode = PN of (string list * (string * pathnode) list); |
716 datatype pathnode = PN of (string list * (string * pathnode) list); |
718 fun mk_ipath ([], base) (PN (defs, modls)) = |
717 fun mk_ipath ([], base) (PN (defs, modls)) = |