module type CharPQueueAbs = sig type priority = int (* still concrete *) type char_queue (* now abstract *) val empty : char_queue val insert : char_queue -> int -> char -> char_queue exception QueueIsEmpty end;;