Many different applications can use an abbrev expander, and it is important that the same abbrevs can be used in all those applications, so that the user only has to define them once.
There is a preliminary version of such a tool in the Drei directory of the McCLIM distribution. It is basically sound, but it needs to be independent of the text editor. For that reason, the possibly-expand-abbrev function should be moved to Drei, and the rest should be moved to a package independent of Drei.
Also, the only implementation of the protocol class abbrev-expander is a very simple dictionary in the form of an association list. More efficient implementations would be nice to have, say one using a hash table.
It might be interesting to consider the possibility of having a union of elementary abbrev expanders, so that the user can factor the abbrevs by criteria such as language, domain, type of application, etc. Some interesting method combinations could be interesting to explore here.