anchor.diff:          | Node(a, _ , d) ->
               a :: (d |> Map.valueList |> List.collect toList)
   
  +    let toSeq tree = tree |> toList |> List.toSeq
  +    
  +    let toArray tree = tree |> toList |> List.toArray
  +
       let rec private toListDistance distance n a = function
           | Empty -> []
           | Node(b, _, dict) ->
  
positive.code:             |> List.collect (toListDistance distance n a)
              |> if d <= n then List.cons b else id
  
      let private ofList distance xs = xs |> List.fold (flip (add distance)) empty
  
      let private concat distance xs = xs |> List.collect toList |> ofList distance
  
  
negative.code:         member x.concat xs = concat distance xs
          member x.append t1 t2 = x.concat [t1; t2]
          member x.delete a tree = delete distance a tree
          member x.ofSeq xs = ofSeq distance xs
          member x.ofArray xs = ofArray distance xs
  
      let private hirschberg xs = function
          | [] -> List.length xs
  