anchor.diff:          | Shape.ISerializable s ->
               s.Accept {
                   new ISerializableVisitor<Pickler> with
  -                    member __.Visit<'T when 'T :> ISerializable> () =
  +                    member __.Visit<'T when 'T :> ISerializable> (ss:ShapeISerializable<'T>): Pickler =
                           match tryGetISerializableCtor typeof<'T> with
                           | Some _ -> ISerializablePickler.Create<'T>() :> _
                           | None -> ISerializablePickler.CreateObjectReferencePickler<'T>() :> _
  
positive.code: open System.Runtime.Serialization
  
  open TypeShape
  open TypeShape_ISerializableExtensions
  
  open MBrace.FsPickler
  open MBrace.FsPickler.Reflection
  
negative.code:         | Shape.Array s ->
              s.Accept {
                  new IArrayVisitor<Pickler> with
                      member __.Visit<'T> rank = 
                          match rank with
                          | 1 -> ArrayPickler.Create<'T>(resolver) :> _
                          | 2 -> ArrayPickler.Create2D<'T>(resolver) :> _
                          | 3 -> ArrayPickler.Create3D<'T>(resolver) :> _
                          | 4 -> ArrayPickler.Create4D<'T>(resolver) :> _
                          | _ -> raise <| FsPicklerException "Array ranks more than 4 are not supported."
              }
  
          | Shape.Tuple1 s ->
  