The line between 'full-blown DSL' and 'full-featured library' is extremely fuzzy. I find it hard to use 'DSL' in a clear, meaningful way.