enumerable <value> ++ + forwardable <> =
{
  @spec 
  {
    ;
  }
  [local]
  {
    get_current (pvalue -w _, enumerable _, ulong64 access_code);
  }
};

enumerable <key, value> ++ + forwardable <> =
{
  @spec 
  {
    ;
  }
  [local]
  {
    get_current (pkey -w _, pvalue -w value, enumerable _, ulong64 access_code);
  }
};

array_list <key, value> ++ + enumerable <key, value> =
{
  @spec
  {
    add (array_list -&w _, key _, value _);

    remove (array_list -&w _, key _);
    remove (array_list -&w _, ulong64 access_code);

    remove_all (array_list -&w _);
    remove_all (array_list -&w _, p_datetime time);
  }
};