   @::plus = @::insert
 
 
-SortedSeq = new FingerTreeType OrderMeasure, SortedExtensions (a, b) -> a < b
+class SortedSeqType extends FingerTreeType
+  constructor: (less = ((a, b) -> a < b), extensions = Void) ->
+    super OrderMeasure, SortedExtensions less, extensions
 
 
 # --------------------------------------------------------------------


exports.FingerTreeType = FingerTreeType
exports.CountedSeq     = CountedSeq
exports.SortedSeq      = SortedSeq

  single: (x) -> x
  sum:    (a, b) -> if b? then b else a

SortedExtensions = (less, extensions) -> class extends extensions
  after  = (s, k) ->
    if k == undefined then s else new s.constructor s.data.after k

