type t val p : t val oink : t -> unit