Merged experimental changes into a new branch
Changed Rational to use long instead of Int().  No effect on timings.
Tried playing with some other transforms to see if it made any difference.  Still no appreciable difference in execution time.
More timing experiments.
Turned out a surprisingly performant LinkedList implementation while trying to make a concurrent transform.
Moved things around and generally cleaned up.
added next and previous to Int
Recorded test results.
Removed Sentinal value because Option is faster even than checking for null.
merged experimental changes including using Option instead of Sentinel values.