anchor.diff:              end,
               Output ++ if
                   is_list(ValDumped) andalso ?IS_ARRAY(Value) ->
  -                    Elements = ephp_data:to_bin(Context, Line,
  -                                                ephp_array:size(Value)),
  -                    [<<Spaces/binary, "[", CompleteName/binary, "]=>\n",
  -                       Spaces/binary,"array(", Elements/binary, ") {\n",
  -                       (iolist_to_binary(ValDumped))/binary, Spaces/binary,
  -                       "}\n">>];
  +                    Prefix = <<Spaces/binary, "[", CompleteName/binary, "]=>\n">>,
  +                    var_dump_array(Prefix, Context, Line, Value, ValDumped, Spaces);
                   is_list(ValDumped) andalso ?IS_OBJECT(Value) ->
  -                    #ephp_object{class=#class{attrs = Attrs}} = Object =
  -                        ephp_object:get(Value),
  -                    Size = ephp_data:to_bin(length(Attrs)),
  -                    #ephp_object{id = InstanceID, class = SClass} = Object,
  -                    ID = integer_to_binary(InstanceID),
  -                    [
  -                        <<Spaces/binary, "[", CompleteName/binary, "]=>\n",
  -                          Spaces/binary, "object(", (SClass#class.name)/binary,
  -                          ")#", ID/binary, " (", Size/binary, ") {\n">>
  -                    ] ++ ValDumped ++ [
  -                        <<Spaces/binary, "}\n">>
  -                    ];
  +                    Prefix = <<Spaces/binary, "[", CompleteName/binary, "]=>\n">>,
  +                    var_dump_object(Prefix, Value, ValDumped, Spaces);
                   true ->
                       [<<Spaces/binary, "[", CompleteName/binary, "]=>\n",
                          Spaces/binary, ValDumped/binary>>]
               end
  -        end, [], Class#class.attrs);
  +        end, [], VisAttrs);
       undefined ->
           <<"NULL\n">>
       end;
  
positive.code:     RecCtl = gb_sets:new(),
      Result = case var_dump_fmt(Context, Line, Value, <<?SPACES_VD>>, RecCtl) of
          Elements when is_list(Elements) ->
              Data = iolist_to_binary(Elements),
              case Value of
                  Value when ?IS_ARRAY(Value) ->
                      Size = ephp_data:to_bin(ephp_array:size(Value)),
                      <<"array(", Size/binary, ") {\n", Data/binary, "}\n">>;
                  #obj_ref{pid = Objects, ref = ObjectId} ->
                      #ephp_object{class = #class{name = ClassName, attrs = Attrs}} =
                          ephp_object:get(Objects, ObjectId),
                      Size = ephp_data:to_bin(length(Attrs)),
                      ID = integer_to_binary(ObjectId),
                      <<"object(", (ClassName)/binary, ")#", ID/binary,
                        " (", Size/binary, ") {\n", Data/binary, "}\n">>
              end;
          Element ->
              Element
  
negative.code:         Name = <<"lambda_", Id/binary>>,
          var_dump_fmt(Context, Line, Name, Spaces, RecCtl);
      #ephp_object{class = Class, context = Ctx} ->
          #class{name = ClassName, attrs = Attrs} = Class,
          VisAttrs = [ Attr || Attr = #class_attr{type = normal} <- Attrs ],
          lists:foldl(fun(#class_attr{name = RawName, access = Access} = CA, Output) ->
              Variable = case Access of
                  private ->
  