fmod BOOK is protecting PAIR *(sort Pair to Book) *(op pair to book) *(op getFirst to getTitle) *(op setFirst to setTitle) *(op getSecond to getAuthor) *(op setSecond to setAuthor) . endfm *** Example usage red getTitle(book("The Guide", "Goethe")) . red getTitle(setAuthor(setTitle(book("Thanks for all the fish", "Goethe"), "The Guide"), "Douglas Adams")) .