sig
  type 'a undoAlphaElement
  type 'a alphaTableData
  val newAlphaName :
    alphaTable:(string, 'Alpha.alphaTableData Pervasives.ref) Hashtbl.t ->
    undolist:'Alpha.undoAlphaElement list Pervasives.ref option ->
    lookupname:string -> data:'-> string * 'a
  val registerAlphaName :
    alphaTable:(string, 'Alpha.alphaTableData Pervasives.ref) Hashtbl.t ->
    undolist:'Alpha.undoAlphaElement list Pervasives.ref option ->
    lookupname:string -> data:'-> unit
  val docAlphaTable :
    unit ->
    (string, 'Alpha.alphaTableData Pervasives.ref) Hashtbl.t -> Pretty.doc
  val getAlphaPrefix : lookupname:string -> string
  val undoAlphaChanges :
    alphaTable:(string, 'Alpha.alphaTableData Pervasives.ref) Hashtbl.t ->
    undolist:'Alpha.undoAlphaElement list -> unit
end