Module Mystack

module Mystack: sig .. end

type 'a t = 
| Empty
| Item of 'a * 'a t
val push : 'a t -> 'a -> 'a t
val pop : 'a t -> ('a * 'a t) option
val peek : 'a t -> 'a option
val stack_of_list : 'a list -> 'a t
val list_of_stack : 'a t -> 'a list
val fmap : ('a -> 'b) -> 'a t -> 'b t