equal
deleted
inserted
replaced
275 \<open>\<val> merge: T \<times> T \<rightarrow> T\<close> & join on import \\ |
275 \<open>\<val> merge: T \<times> T \<rightarrow> T\<close> & join on import \\ |
276 \end{tabular} |
276 \end{tabular} |
277 \<^medskip> |
277 \<^medskip> |
278 |
278 |
279 The \<open>empty\<close> value acts as initial default for \<^emph>\<open>any\<close> theory that does not |
279 The \<open>empty\<close> value acts as initial default for \<^emph>\<open>any\<close> theory that does not |
280 declare actual data content; \<open>extend\<close> is acts like a unitary version of |
280 declare actual data content; \<open>extend\<close> acts like a unitary version of |
281 \<open>merge\<close>. |
281 \<open>merge\<close>. |
282 |
282 |
283 Implementing \<open>merge\<close> can be tricky. The general idea is that \<open>merge (data\<^sub>1, |
283 Implementing \<open>merge\<close> can be tricky. The general idea is that \<open>merge (data\<^sub>1, |
284 data\<^sub>2)\<close> inserts those parts of \<open>data\<^sub>2\<close> into \<open>data\<^sub>1\<close> that are not yet |
284 data\<^sub>2)\<close> inserts those parts of \<open>data\<^sub>2\<close> into \<open>data\<^sub>1\<close> that are not yet |
285 present, while keeping the general order of things. The @{ML Library.merge} |
285 present, while keeping the general order of things. The @{ML Library.merge} |