Implementing the Specification Pattern (by Eric Evans and Martin Fowler)