sig
  val poly : 'a list -> 'a
  val nop : unit -> unit
  val do_nothing_1 : unit -> unit
  val do_nothing_2 : unit -> unit
  val do_something : unit -> unit
  val f : int -> int
  val g : float -> float
  val h : bool -> bool
  val get : unit -> int
  val apply : ('-> unit) -> 'a list -> unit
  val apply_mt : ('-> unit) -> 'a list -> unit
  val complex : float -> float -> float * float
  val buggy : bool -> int
  val fresh : string -> int
end