sig
  type 'a dynamic_stack = {
    mutable capacity : int;
    mutable size : int;
    mutable stack : 'a array;
    default : 'a;
  }
  val make : int -> '-> 'Dynamic_stack.dynamic_stack
  val push : 'Dynamic_stack.dynamic_stack -> '-> unit
  val empty : 'Dynamic_stack.dynamic_stack -> bool
  val pop : 'Dynamic_stack.dynamic_stack -> 'a
  val top : 'Dynamic_stack.dynamic_stack -> 'a
end