module AddressDB ( Address(..), AddressBook, newAddressBook, -- :: AddressBook insertAddress, -- :: AddressBook -> Address -> AddressBook deleteAddress, -- :: AddressBook -> Address -> AddressBook -- delete address in adr. book, returns -- org. book if adr. not in book findMatches, -- :: AddressBook -> String -> [Address] -- given a search string, find all entries -- where str is a prefix of first or last name ) where import Database type FirstName = String type LastName = String type PhoneNr = Int data Address = Address FirstName LastName PhoneNr deriving (Ord, Eq) type AddressBook = Database Address