Designing Flexible, Modular Linguistic Abstractions