anchor.diff:          lzy <| fun () ->
               match list.Value with
               | Empty ->
  -                consc state empty
  +                consCell state empty
               | Cons (hd, tl) ->
                   let state' = folder state hd
  -                consc state (scan folder state' tl)
  +                consCell state (scan folder state' tl)
   
       /// Return the list which on consumption will consist of
       /// at most 'count' elements of the input list.
  
positive.code:             | Empty ->
                  Empty
              | Cons (hd, tl) ->
                  consc (mapping hd) (map mapping tl)
  
      /// Build a new collection whose elements are the results of applying the given function
      /// to the corresponding elements of the two collections pairwise.
  
negative.code:         lzy <| fun () ->
              match list1.Value, list2.Value with
              | Cons (hd1, tl1), Cons (hd2, tl2) ->
                  consCell (mapping hd1 hd2) (map2 mapping tl1 tl2)
              | _ -> Empty
  
      /// Return the list which contains on demand the pair of elements of the first and second list.
  