void fill_arcproc_table (pulong -w access_key)
{
  void set_pointers (pulong -w access_key)
  {
    set_fptr_table (access_key, FP_TABLE, 
                                (pfunction table[]) {
                                                      table[PR_CHECK] = link_library (module, LIB_F_CHECK, arcproc_check);
                                                      table[PR_UNZIP] = link_library (module, LIB_F_UNZIP, arcproc_unzip);
                                                      table[PR_ZIP]   = link_library (module, LIB_F_ZIP,   arcproc_zip);
                                                    });
  }

  set_fptr_table (&arc),
  {
    arc = {
            ac : access_key,
            fp : set_pointers
          }
  };
}