\begingroup
\parskip 0pt\baselineskip 0pt
\tt {\tt\obeyspaces\gdef {\hskip.5em}} \def\par{\leavevmode\endgraf} \catcode`\`=\active
\obeylines \ttverbatim

typedef ... prio_impl_item;

class prio_impl { 

 virtual int  cmp(GenPtr, GenPtr) const = 0;
 virtual int  int_type()          const = 0;
 virtual void clear_key(GenPtr&)  const = 0;
 virtual void clear_inf(GenPtr&)  const = 0;
 virtual void copy_key(GenPtr&)   const = 0;
 virtual void copy_inf(GenPtr&)   const = 0;

public:

 prio_impl();
 prio_impl(int);
 prio_impl(int,int);
 prio_impl(const prio_impl&);
~prio_impl();

 prio_impl& operator=(const prio_impl&);

 prio_impl_item insert(GenPtr,GenPtr);
 prio_impl_item find_min() const;
 prio_impl_item first_item() const;
 prio_impl_item next_item(prio_impl_item) const;

 prio_impl_item item(void* p) const { return prio_impl_item(p); }
 
 GenPtr key(prio_impl_item) const;
 GenPtr inf(prio_impl_item) const;

 void del_min();
 void del_item(prio_impl_item);
 void decrease_key(prio_impl_item,GenPtr);
 void change_inf(prio_impl_item,GenPtr);
 void clear();
  
 int  size()  const;
};
\endgroup
