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

typedef ... dic_impl_item;

class dic_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:

 dic_impl();
 dic_impl(const dic_impl&);
~dic_impl();

 dic_impl& operator=(const dic_impl&);

 GenPtr key(dic_impl_item p)  const;
 GenPtr inf(dic_impl_item p)  const;

 dic_impl_item insert(GenPtr,GenPtr);
 dic_impl_item lookup(GenPtr)  const;
 dic_impl_item first_item()    const;
 dic_impl_item next_item(dic_impl_item) const;

 dic_impl_item item(void* p) const { return dic_impl_item(p); }

 void    change_inf(dic_impl_item,GenPtr);
 void    del_item(dic_impl_item);
 void    del(GenPtr);
 void    clear();

 int     size() const;
};

\endgroup

