anchor.diff:  
   -record(state, {vips = orddict:new()}).
   
  -
   %% Debug
   -export([poll/0]).
  +
  +-type task() :: map().
  +-type task_status() :: map().
  +-type label() :: map().
  +-type networkinfos() :: map().
  +-type vip_string() :: <<_:48, _:_*1>>.
  +
   %%%===================================================================
   %%% API
   %%%===================================================================
  
positive.code:          disk => Disk
          }).
  
  res_ports(NumPorts) ->
    ?LET(Ports,
         ?SUCHTHAT(L, list(integer(0, 65535)), length(L) >= NumPorts),
         "[" ++ string:join(lists:map(fun (P) ->
                                          integer_to_list(P) ++ "-" ++ integer_to_list(P)
                                      end, Ports), ",") ++ "]").
  
  statuses() ->
    ?LET(S, list(status()), S).
  
  status() ->
    ?LET(NI, list(networkinfo()), #{
      container_status => #{
        network_infos => NI
      }
    }).
  
  networkinfo() ->
    ?LET(IP, ip(), #{ip_address => IP}).
  
  taskstate() ->
    ?LET(S, union([<<"TASK_RUNNING">>]), S).
  
  basic_init_test() ->
  
negative.code: framework_fold(_, AccIn) ->
    AccIn.
  
  -spec task_fold(task(), orddict:orddict()) -> orddict:orddict().
  task_fold(_Task = #{statuses := []}, AccIn) ->
    AccIn;
  task_fold(_Task = #{
  