sig
  val list_empty : unit -> 'a list
  val list_of_singleton : '-> 'a list
  val list_of_option : 'a option -> 'a list
  val list_peek : 'a list -> 'a option
  val list_npeek : int -> 'a list -> 'a list
  val list_is_empty : 'a list -> bool
  val list_is_singleton : 'a list -> bool
  val list_is_optional : 'a list -> bool
end