<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://50.77.162.165/mediawiki/skins/common/feed.css?207"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://50.77.162.165/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Equalizer</id>
		<title>Equalizer - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://50.77.162.165/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Equalizer"/>
		<link rel="alternate" type="text/html" href="http://50.77.162.165/mediawiki/index.php?title=Equalizer&amp;action=history"/>
		<updated>2026-04-20T16:29:04Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.15.5-7</generator>

	<entry>
		<id>http://50.77.162.165/mediawiki/index.php?title=Equalizer&amp;diff=1748&amp;oldid=prev</id>
		<title>Kevin Reid:&amp;#32;various renamings, extra links</title>
		<link rel="alternate" type="text/html" href="http://50.77.162.165/mediawiki/index.php?title=Equalizer&amp;diff=1748&amp;oldid=prev"/>
				<updated>2009-01-14T00:29:22Z</updated>
		
		<summary type="html">&lt;p&gt;various renamings, extra links&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;The [[Equalizer]] implements the algorithm for testing [[sameness]].&lt;br /&gt;
&lt;br /&gt;
{{XXX}} explain further&lt;br /&gt;
&lt;br /&gt;
An Equalizer is present in the [[universal environment]].&lt;br /&gt;
&lt;br /&gt;
 ? __equalizer&lt;br /&gt;
 # value: &amp;amp;lt;equalizer&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Protocol ==&lt;br /&gt;
&lt;br /&gt;
 ? def unresolved := [[Object Ref#promise/0|Ref.promise]]()[0]&lt;br /&gt;
 # value: &amp;amp;lt;Promise&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{instance msgdoc|sameEver|2|&amp;lt;var&amp;gt;a&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;b&amp;lt;/var&amp;gt;|[[Boolean]]}}&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
! When optSame returns !! sameEver&lt;br /&gt;
|-&lt;br /&gt;
| [[false]] || returns false&lt;br /&gt;
|-&lt;br /&gt;
| [[true]] || returns true&lt;br /&gt;
|-&lt;br /&gt;
| [[null]] || [[throw]]s [[NotSettledException]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
(XXX don't use sugar?)&lt;br /&gt;
 &lt;br /&gt;
 ? 1 == 1&lt;br /&gt;
 # value: true&lt;br /&gt;
 &lt;br /&gt;
 ? 1 == 2&lt;br /&gt;
 # value: false&lt;br /&gt;
 &lt;br /&gt;
 ? 1 == unresolved&lt;br /&gt;
 # problem: &amp;amp;lt;insufficientlySettledException: not sufficiently settled: 1 == &amp;amp;lt;Promise&amp;gt;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 ? def _ {} == unresolved&lt;br /&gt;
 # problem: &amp;amp;lt;insufficientlySettledException: not sufficiently settled: &amp;amp;lt;_&amp;gt; == &amp;amp;lt;Promise&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{instance msgdoc|sameYet|2|&amp;lt;var&amp;gt;a&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;b&amp;lt;/var&amp;gt;|[[Boolean]]}}&lt;br /&gt;
&lt;br /&gt;
{| &lt;br /&gt;
! When optSame returns !! sameYet&lt;br /&gt;
|-&lt;br /&gt;
| [[false]] || returns false&lt;br /&gt;
|-&lt;br /&gt;
| [[true]] || returns true&lt;br /&gt;
|-&lt;br /&gt;
| [[null]] || returns false&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 ? __equalizer.sameYet(1, 1)&lt;br /&gt;
 # value: true&lt;br /&gt;
 &lt;br /&gt;
 ? __equalizer.sameYet(1, 2)&lt;br /&gt;
 # value: false&lt;br /&gt;
 &lt;br /&gt;
 ? __equalizer.sameYet(1, unresolved)&lt;br /&gt;
 # value: false&lt;br /&gt;
&lt;br /&gt;
{{instance msgdoc|optSame|2|&amp;lt;var&amp;gt;a&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;b&amp;lt;/var&amp;gt;|nullOk&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;[[Boolean]]]}}&lt;br /&gt;
&lt;br /&gt;
{{XXX}} write documentation&lt;br /&gt;
&lt;br /&gt;
{{instance msgdoc|isSettled|1|&amp;lt;var&amp;gt;a&amp;lt;/var&amp;gt;|[[Boolean]]}}&lt;br /&gt;
&lt;br /&gt;
{{XXX}} This is a proposed change, implemented in [[E-on-CL]]: that the isSettled operation be moved from [[Object Ref]] to Equalizer, since the definition of settledness is tightly related to the definition of sameness.&lt;br /&gt;
&lt;br /&gt;
{{XXX}} write tests&lt;br /&gt;
&lt;br /&gt;
{{instance msgdoc|makeTraversalKey|1|&amp;lt;var&amp;gt;a&amp;lt;/var&amp;gt;|[[TraversalKey]]}}&lt;br /&gt;
&lt;br /&gt;
{{XXX}} See comment and rationale on isSettled.&lt;br /&gt;
&lt;br /&gt;
==Tests==&lt;br /&gt;
&lt;br /&gt;
{{XXX}} Discuss whether these tests should be placed on this page or on [[Sameness]], and whether these tests should be broken up by method documentation sections or all together like this.&lt;br /&gt;
&lt;br /&gt;
{{XXX}} review whether these tests have good coverage (they were compiled by TDD in [[E-on-CL]]).&lt;br /&gt;
&lt;br /&gt;
Just defining some objects to use later:&lt;br /&gt;
&lt;br /&gt;
 ? [[DefineExpr|def]] makeCoercedSlot := &amp;amp;lt;elib:slot.makeCoercedSlot&amp;gt;; [[null]]&lt;br /&gt;
 &lt;br /&gt;
 # {{XXX}} we should define our semitransparent type here, not rely on CoercedSlot being this incidentally&lt;br /&gt;
 &lt;br /&gt;
 ? [[ObjectExpr|def]] a {}&lt;br /&gt;
 # value: &amp;amp;lt;a&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 ? [[ObjectExpr|def]] b {}&lt;br /&gt;
 # value: &amp;amp;lt;b&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 ? def semiA1 := makeCoercedSlot(any, 1, null)&lt;br /&gt;
 &amp;gt; def semiA2 := makeCoercedSlot(any, 1, null)&lt;br /&gt;
 &amp;gt; def semiB := makeCoercedSlot(any, 2, null)&lt;br /&gt;
 &amp;gt; def semiU := makeCoercedSlot(any, Ref.promise()[0], null)&lt;br /&gt;
 &amp;gt;null&lt;br /&gt;
&lt;br /&gt;
===Algorithm checking===&lt;br /&gt;
&lt;br /&gt;
Two [[selfish]] objects are different.&lt;br /&gt;
&lt;br /&gt;
 ? __equalizer.optSame(a, b)&lt;br /&gt;
 # value: false&lt;br /&gt;
&lt;br /&gt;
A selfish object is the same as itself.&lt;br /&gt;
&lt;br /&gt;
 ? __equalizer.optSame(a, a)&lt;br /&gt;
 # value: true&lt;br /&gt;
&lt;br /&gt;
An [[atomic selfless]] object is the same as any object with the same value.&lt;br /&gt;
&lt;br /&gt;
 ? [1, 1000000000000000000001 - 1000000000000000000000]&lt;br /&gt;
 # value: [1, 1]&lt;br /&gt;
 &lt;br /&gt;
 ? __equalizer.optSame(1, 1.0)&lt;br /&gt;
 # value: false&lt;br /&gt;
 &lt;br /&gt;
 ? __equalizer.optSame(1, 1000000000000000000001 - 1000000000000000000000)&lt;br /&gt;
 # value: true&lt;br /&gt;
&lt;br /&gt;
A [[transparent selfless]] object is the same as any object with the same [[portrayal]] as from [[Miranda optUncall/1|__optUncall]].&lt;br /&gt;
&lt;br /&gt;
 ? __equalizer.optSame([1], [1])&lt;br /&gt;
 # value: true&lt;br /&gt;
 &lt;br /&gt;
 ? __equalizer.optSame([1], [2])&lt;br /&gt;
 # value: false&lt;br /&gt;
&lt;br /&gt;
An unresolved reference is the same as itself, but not the same or different as anything else.&lt;br /&gt;
&lt;br /&gt;
{{XXX}} fix all updoc impls and eliminate use of [null] gimmick&lt;br /&gt;
&lt;br /&gt;
 ? [__equalizer.optSame(1, unresolved)]&lt;br /&gt;
 # value: [null]&lt;br /&gt;
 &lt;br /&gt;
 ? [__equalizer.optSame(unresolved, unresolved)]&lt;br /&gt;
 # value: [true]&lt;br /&gt;
 &lt;br /&gt;
 ? [__equalizer.optSame([unresolved], [unresolved])]&lt;br /&gt;
 # value: [true]&lt;br /&gt;
 &lt;br /&gt;
 ? [__equalizer.optSame(unresolved, Ref.promise()[0])]&lt;br /&gt;
 # value: [null]&lt;br /&gt;
&lt;br /&gt;
Cyclic Selfless objects are the same as each other provided they have the same structure.&lt;br /&gt;
&lt;br /&gt;
 ? [__equalizer.optSame(def circle := [circle], def loop := [loop])]&lt;br /&gt;
 # value: [true]&lt;br /&gt;
 &lt;br /&gt;
 ? [__equalizer.optSame(def circle := [1, [1, circle]], def loop := [1,  loop])]&lt;br /&gt;
 # value: [true]&lt;br /&gt;
&lt;br /&gt;
More Selfless (XXX move these?)&lt;br /&gt;
&lt;br /&gt;
 ? [__equalizer.optSame('q', 'q')]&lt;br /&gt;
 # value: [true]&lt;br /&gt;
 &lt;br /&gt;
 ? [__equalizer.optSame('q', 'w')]&lt;br /&gt;
 # value: [false]&lt;br /&gt;
 &lt;br /&gt;
 ? &amp;quot;a&amp;quot; + &amp;quot;bc&amp;quot;&lt;br /&gt;
 # value: &amp;quot;abc&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 ? [__equalizer.optSame(&amp;quot;abc&amp;quot;, &amp;quot;a&amp;quot; + &amp;quot;bc&amp;quot;)]&lt;br /&gt;
 # value: [true]&lt;br /&gt;
&lt;br /&gt;
A String is a kind of list but it isn't the same as a plain ConstList.&lt;br /&gt;
&lt;br /&gt;
 ? [__equalizer.optSame(['a', 'b', 'c'], &amp;quot;a&amp;quot; + &amp;quot;bc&amp;quot;)]&lt;br /&gt;
 # value: [false]&lt;br /&gt;
&lt;br /&gt;
Tests of semitransparency ({{XXX}} document this; currently only actually implemented in general in [[E-on-CL]]; semitransparency is the general case of what [[SturdyRef]], and now [[CoercedSlot]] is):&lt;br /&gt;
&lt;br /&gt;
 ? [__equalizer.optSame(semiA1, semiA2)]&lt;br /&gt;
 # value: [true]&lt;br /&gt;
 &lt;br /&gt;
 ? [__equalizer.optSame(semiA1, semiB)]&lt;br /&gt;
 # value: [false]&lt;br /&gt;
 &lt;br /&gt;
 ? [__equalizer.optSame(semiA1, semiU)]&lt;br /&gt;
 # value: [null]&lt;br /&gt;
 &lt;br /&gt;
This is a test for a former bug in [[E-on-CL]]: the sofar list was sometimes being filled with the right-side reference only (broken sort-by-hash swap), so a cycle on the right would be assumed to be a cycle on the left as well. The test is done with two sets of references because whether the swap occurs depends on the hash-values involved.&lt;br /&gt;
&lt;br /&gt;
 ? def l1 := &amp;lt;nowiki&amp;gt;[[[l1]]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;gt; def c1 := &amp;lt;nowiki&amp;gt;[[[[[['a']]]]]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;gt; def l2 := &amp;lt;nowiki&amp;gt;[[[l2]]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;gt; def c2 := &amp;lt;nowiki&amp;gt;[[[[[['b']]]]]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 &amp;gt; [c1 == l1, c1 == l2, c2 == l1, c2 == l2,&lt;br /&gt;
 &amp;gt;  l1 == c1, l1 == c2, l2 == c1, l2 == c2]&lt;br /&gt;
 # value: [false, false, false, false, false, false, false, false]&lt;br /&gt;
&lt;br /&gt;
===isSettled===&lt;br /&gt;
&lt;br /&gt;
 ? __equalizer.isSettled(semiA1)&lt;br /&gt;
 # value: true&lt;br /&gt;
 &lt;br /&gt;
 ? __equalizer.isSettled(semiU)&lt;br /&gt;
 # value: false&lt;br /&gt;
&lt;br /&gt;
{{XXX}} there are other isSettled tests from E-on-CL to be moved here&lt;br /&gt;
&lt;br /&gt;
[[Category:ELib specification]]&lt;/div&gt;</summary>
		<author><name>Kevin Reid</name></author>	</entry>

	<entry>
		<id>http://50.77.162.165/mediawiki/index.php?title=Equalizer&amp;diff=3813&amp;oldid=prev</id>
		<title>Kevin Reid:&amp;#32;add tests from eocl, some doc</title>
		<link rel="alternate" type="text/html" href="http://50.77.162.165/mediawiki/index.php?title=Equalizer&amp;diff=3813&amp;oldid=prev"/>
				<updated>2009-01-11T17:17:35Z</updated>
		
		<summary type="html">&lt;p&gt;add tests from eocl, some doc&lt;/p&gt;
&lt;a href=&quot;http://50.77.162.165/mediawiki/index.php?title=Equalizer&amp;amp;diff=3813&amp;amp;oldid=3812&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Kevin Reid</name></author>	</entry>

	<entry>
		<id>http://50.77.162.165/mediawiki/index.php?title=Equalizer&amp;diff=3812&amp;oldid=prev</id>
		<title>Kevin Reid:&amp;#32;fix arities</title>
		<link rel="alternate" type="text/html" href="http://50.77.162.165/mediawiki/index.php?title=Equalizer&amp;diff=3812&amp;oldid=prev"/>
				<updated>2009-01-11T15:43:25Z</updated>
		
		<summary type="html">&lt;p&gt;fix arities&lt;/p&gt;

		&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 15:43, 11 January 2009&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Protocol ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Protocol ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{instance msgdoc|sameEver|&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;1&lt;/del&gt;|&amp;lt;var&amp;gt;a&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;b&amp;lt;/var&amp;gt;|[[Boolean]]}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{instance msgdoc|sameEver|&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;2&lt;/ins&gt;|&amp;lt;var&amp;gt;a&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;b&amp;lt;/var&amp;gt;|[[Boolean]]}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{XXX}} write documentation and tests&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{XXX}} write documentation and tests&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{instance msgdoc|sameYet|&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;1&lt;/del&gt;|&amp;lt;var&amp;gt;a&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;b&amp;lt;/var&amp;gt;|[[Boolean]]}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{instance msgdoc|sameYet|&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;2&lt;/ins&gt;|&amp;lt;var&amp;gt;a&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;b&amp;lt;/var&amp;gt;|[[Boolean]]}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{XXX}} write documentation and tests&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{XXX}} write documentation and tests&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{instance msgdoc|optSame|&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;1&lt;/del&gt;|&amp;lt;var&amp;gt;a&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;b&amp;lt;/var&amp;gt;|nullOk&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;[[Boolean]]]}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{instance msgdoc|optSame|&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;2&lt;/ins&gt;|&amp;lt;var&amp;gt;a&amp;lt;/var&amp;gt;, &amp;lt;var&amp;gt;b&amp;lt;/var&amp;gt;|nullOk&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;[[Boolean]]]}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{XXX}} write documentation and tests&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{XXX}} write documentation and tests&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff generator: internal 2026-04-20 16:29:06 --&gt;
&lt;/table&gt;</summary>
		<author><name>Kevin Reid</name></author>	</entry>

	<entry>
		<id>http://50.77.162.165/mediawiki/index.php?title=Equalizer&amp;diff=3811&amp;oldid=prev</id>
		<title>Kevin Reid:&amp;#32;add isSettled, makeTraversalKey</title>
		<link rel="alternate" type="text/html" href="http://50.77.162.165/mediawiki/index.php?title=Equalizer&amp;diff=3811&amp;oldid=prev"/>
				<updated>2009-01-11T15:42:22Z</updated>
		
		<summary type="html">&lt;p&gt;add isSettled, makeTraversalKey&lt;/p&gt;

		&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;col class='diff-marker' /&gt;
		&lt;col class='diff-content' /&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;←Older revision&lt;/td&gt;
		&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 15:42, 11 January 2009&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 17:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 17:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{XXX}} write documentation and tests&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{XXX}} write documentation and tests&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;{{instance msgdoc|isSettled|1|&amp;lt;var&amp;gt;a&amp;lt;/var&amp;gt;|[[Boolean]]}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;{{XXX}} This is a proposed change, implemented in [[E-on-CL]]: that the isSettled operation be moved from [[Ref (object)]] to Equalizer, since the definition of settledness is tightly related to the definition of sameness.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;{{XXX}} write tests&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;{{instance msgdoc|makeTraversalKey|1|&amp;lt;var&amp;gt;a&amp;lt;/var&amp;gt;|[[TraversalKey]]}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;{{XXX}} See comment and rationale on isSettled.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{stub}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{stub}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:ELib specification]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:ELib specification]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff generator: internal 2026-04-20 16:29:07 --&gt;
&lt;/table&gt;</summary>
		<author><name>Kevin Reid</name></author>	</entry>

	<entry>
		<id>http://50.77.162.165/mediawiki/index.php?title=Equalizer&amp;diff=3810&amp;oldid=prev</id>
		<title>Kevin Reid at 15:34, 11 January 2009</title>
		<link rel="alternate" type="text/html" href="http://50.77.162.165/mediawiki/index.php?title=Equalizer&amp;diff=3810&amp;oldid=prev"/>
				<updated>2009-01-11T15:34:33Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;http://50.77.162.165/mediawiki/index.php?title=Equalizer&amp;amp;diff=3810&amp;amp;oldid=1748&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Kevin Reid</name></author>	</entry>

	</feed>