# array-list

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

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

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

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

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