anchor.diff:      let Foldl = Foldl()
   
   
  -    type ToListDefault() =
  -        static member inline instance (_:ToListDefault, x:#obj , _) = fun () -> foldr List.cons [] x
  -
       type ToList() =
  -        inherit ToListDefault()
  +        inherit Typ1()
  +        static member inline instance (_:Typ1, x , _) = fun () -> foldr List.cons [] x
           static member instance (_:ToList, x:seq<'a>       , _) = fun () -> Seq.toList x
           static member instance (_:ToList, x:Set<'a>       , _) = fun () -> Set.toList x
           static member instance (_:ToList, x:string        , _) = fun () -> x.ToCharArray() |> Array.toList
  
positive.code:         static member instance (_:ToList, x:list<'a>      , _) = fun () -> x
  
      let ToList = ToList()
  
      type ToArrayDefault() =
          static member inline instance (_:ToArrayDefault, x:#obj , _) = fun () -> foldr (fun x y -> Array.concat [[|x|];y]) [||] x
  
      type ToArray() =
          inherit ToArrayDefault()
          static member instance (_:ToArray, x:seq<'a>       , _) = fun () -> Seq.toArray x
          static member instance (_:ToArray, x:Set<'a>       , _) = fun () -> Set.toArray x
          static member instance (_:ToArray, x:string        , _) = fun () -> x.ToCharArray()
  
negative.code: 
  
      type Foldr with
          static member inline instance (_:Foldr, x:array<_>, _) = fun (f,z) -> DefaultImpl.FoldrFromFoldMap f z x
  
      let inline internal foldr (f: 'a -> 'b -> 'b) (z:'b) x :'b = Inline.instance (Foldr, x) (f,z)
  
  