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