imap plan: flags: system flags are described in the imap protocol as words like: \Answered the backslash is annoying to type and I think that the text is case insensitive anyway. we'll represent these flags by keywords (e.g :answered). todo: uid (modifier to copy fetch and store commands) search sexpressions (things that can be passwd to the search-mailbox function). kwda - keywords that don't take any arguments kwdb - keywords that do take arguments ssexp := nil | ssexp1 ssexp1 := kwda | (kwdb oprnd+) (and ssexp1*) | (or ssexp1*) | (not ssexp1) | set set := number-seq | ( number-seq+ ) number-seq := integer | (:seq integer integer) kwda := :all | :answered ... kwdb := :bcc | :before .... oprnd := implemented: connecting: make-imap-connection after connecting: fetch-letter mailbox-list noop search-mailbox select-mailbox