Here are two tiny changesets for you to review, striving to improve the usability of explorers for sparse collection classes. :-)<br>
<br>
Usage examples (explore them or see the screenshots):<br>
<br>
    <font color="#000000">{</font><font color="#800000">10</font><font color="#000080">@</font><font color="#800000">10</font><font color="#000000">. </font><font color="#800000">10</font><font color="#000080">@</font><font color="#800000">10</font><font color="#000000">. </font><font color="#800000">20</font><font color="#000080">@</font><font color="#800000">20</font><font color="#000000">. </font><font color="#800000">20</font><font color="#000080">@</font><font color="#800000">20</font><font color="#000000">. </font><font color="#800000">20</font><font color="#000080">@</font><font color="#800000">20</font><font color="#000000">. </font><font color="#800000">30</font><font color="#000080">@</font><font color="#800000">30</font><font color="#000000">. </font><font color="#800000">30</font><font color="#000080">@</font><font color="#800000">30</font><font color="#000000">. </font><font color="#800000">40</font><font color="#000080">@</font><font color="#800000">40</font><font color="#000000">} </font><font color="#000080">asBag</font><font color="#000000">.<br>
    {</font><font color="#800000">10</font><font color="#000080">@</font><font color="#800000">10</font><font color="#000000">. </font><font color="#800000">10</font><font color="#000080">@</font><font color="#800000">10</font><font color="#000000">. </font><font color="#800000">20</font><font color="#000080">@</font><font color="#800000">20</font><font color="#000000">. </font><font color="#800000">20</font><font color="#000080">@</font><font color="#800000">20</font><font color="#000000">. </font><font color="#800000">20</font><font color="#000080">@</font><font color="#800000">20</font><font color="#000000">. </font><font color="#800000">30</font><font color="#000080">@</font><font color="#800000">30</font><font color="#000000">. </font><font color="#800000">30</font><font color="#000080">@</font><font color="#800000">30</font><font color="#000000">. </font><font color="#800000">40</font><font color="#000080">@</font><font color="#800000">40</font><font color="#000000">} </font><font color="#000080">as:</font><font color="#000000"> RunArray.</font><br>
<br>
Here's a follow-up question: Do we also want to have a RunArrayInspector?<br>
<br>
Best,<br>
Christoph<br>
<br>
<b>=============== Summary (Bag-explorer.2.cs) ===============</b><br>
<br>
Change Set:        Bag-explorer<br>
Date:            8 February 2022<br>
Author:            Christoph Thiede<br>
<br>
This changeset provides a more compact representation of Bags in the ObjectExplorer.<br>
<br>
<b>=============== Diff ===============</b><br>
<br>
<b>Bag>>explorerContents {*Morphic-Explorer} · ct 2/8/2022 00:15</b><br>
<font color="#FF0000">+ explorerContents<br>
+ <br>
+     ^ self valuesAndCounts withKeysSortedSafely associations collect: [:assoc |<br>
+         ObjectExplorerWrapper<br>
+             with: assoc key<br>
+             name: assoc value printString<br>
+             model: self]</font><br>
<br>
<br>
<b>=============== Summary (RunArray-explorer.1.cs) ===============</b><br>
<br>
Change Set:        RunArray-explorer<br>
Date:            8 February 2022<br>
Author:            Christoph Thiede<br>
<br>
This changeset provides a more compact representation of RunArrays in the ObjectExplorer. It also adds a new enumeration selector, #intervalsAndValuesDo:.<br>
<br>
<b>=============== Diff ===============</b><br>
<br>
<b>RunArray>>explorerContents {*Morphic-Explorer} · ct 2/8/2022 00:09</b><br>
<font color="#FF0000">+ explorerContents<br>
+ <br>
+     ^ OrderedCollection new: self runs size streamContents: [:stream |<br>
+         self intervalsAndValuesDo: [:interval :value |<br>
+             stream nextPut: (ObjectExplorerWrapper<br>
+                 with: value<br>
+                 name: interval printString<br>
+                 model: self)]]</font><br>
<br>
<b>RunArray>>intervalsAndValuesDo: {enumerating} · ct 2/8/2022 00:09</b><br>
<font color="#FF0000">+ intervalsAndValuesDo: aBlock<br>
+ <br>
+     | index |<br>
+     index := 0.<br>
+     runs with: values do: [:run :value |<br>
+         aBlock<br>
+             value: (index + 1 to: (index := index + run))<br>
+             value: value].</font><br>
<br>
<br>
<font color="#808080">---<br>
</font><font color="#808080"><i>Sent from </i></font><font color="#808080"><i><a href="https://github.com/hpi-swa-lab/squeak-inbox-talk"><u><font color="#808080">Squeak Inbox Talk</font></u></a></i></font><br>
["RunArray-explorer.1.cs"]<br>
["RunArray-explorer.png"]<br>
["Bag-explorer.png"]<br>
["Bag-explorer.2.cs"]