anchor.diff:  
   check_ptr(#ref{ segment=SegmentId, pos=Ptr, data=Data },
             #ref{ segment=SegmentId, pos=Pos, data=Data, offset=Offset,
  -                kind={Kind, DSize, PSize} })
  -  when (Kind == struct_ref orelse Kind == interface_ref),
  -       Ptr >= (Pos + 1 + Offset + DSize),
  +                kind=#struct_ref{ dsize=DSize, psize=PSize } })
  +  when Ptr >= (Pos + 1 + Offset + DSize),
          Ptr <  (Pos + 1 + Offset + DSize + PSize) -> ok;
   check_ptr(#ref{ segment=SegmentId, pos=Ptr, data=Data },
             #ref{ segment=SegmentId, pos=Pos, data=Data, offset=Offset,
  
positive.code:     read_list_element_bits(Next, Left - 1, Count - 1, Rest, [Bit|Acc]).
  
  copy_ref(#ref{ kind=null }=Ref) -> {Ref, 0, []};
  copy_ref(#ref{ kind={Kind, DSize, PSize} }=Ref)
    when Kind == struct_ref; Kind == interface_ref ->
      StructData = read_struct_data(0, DSize * 64, Ref),
      StructPtrs = [copy_ref(read_struct_ptr(Idx, Ref))
                    || Idx <- lists:seq(0, PSize - 1)],
  
negative.code: %% or a "unpositioned" ref pointing to where a inlineComposite element
  %% holds its data).
  ptr(Idx, #ref{ segment=SegmentId, pos=Pos, offset=Offset, data=Data,
                 kind=#struct_ref{ dsize=DSize, psize=PSize } })
    when Idx >= 0, Idx < PSize ->
      #ref{ segment=SegmentId,
            pos=Pos + 1 + Offset + DSize + Idx,
            data=Data };
  