(a) Some changes to method names (e.g., insertAsNext() to insertAsNextOf()).
(b) Some updates to the @throws tag in Javadoc.
(c) A skeleton for tree structures.
(a) AbstractList's abstract methods (e.g., doGet()) should take Handles rather than ListNodes, since subclasses may choose to use different classes as Handles.
(a) AbstractTree and SimpleTree implemented (not yet tested).
(b) Some updates to the List and Tree interfaces.
(c) StringFormer class for toString() method.
(a) IvyIdea.
(a) Bug fix on StringFormer: now correctly builds "[]" for empty data structures.
(b) Bug fix on List.contains().
(c) More unit tests for lists.
(d) Small updates on TestUtilities class.
(a) Skeleton for tree tests.
(b) Bug fix - tree size is now updated.
(a) Transition to IvyIdea.
(a) Middle-of-work save.
(a) The TestUtilities class is refactored into TestValues (providing values for test data) and TestConstants (for often-used control variables).
(a) List is now iterable.
(b) Helper classes for iterators.
(a) AbstractList now updates the structural modification stamp.
(a) DataStructure is parametrized.
(b) DataStructure extends Iterable.
(c) DataStructure declears a default stream() method.
(a) Relocated the package utilities.iterators into datastructures.iterators.
(a) Simplified toString().
(a) Stamp handling migrates to AbstractDataStructure.
(a) Middle-of-work save.
(a) Fixed the iterators for lists.
(b) Iterable-accepting constructor for SimpleList.
(a) Almost done with AbstractTree's initial implementation.
(a) Tests for Iterables.
(b) A few refactors.
(a) Removed the single-argument version of Iterables.from().
(b) The arity-argument version now makes a defensive copy and clears out references after consumption.