Hi Macon,
You can make some highly flexible DSL's by using regular expressions and DSL entry
chaining.
See the following for an example:
http://blog.athico.com/2008/06/allowing-variable-masks-in-dsl-grammar.html
*********
So the above rules could be partially rewritten as:
rule "Monetary 1"
when
Currency is one of DOLLAR, EURO, YEN
then
insert(new Fact());
end