I was thinking, method names and their calls seem to create a DSL in your code, by wrapping up the generic stuff and naming it appropriately for what you're trying to achieve.
You know, so it's easy to reason about what the following means
if (a.isSubReportOf(b) || b.isSubReportOf(a)) {
// do stuff
}
but the code in the methods might be really difficult to interpret without studying it.
I know that people sometimes think there's something special about this whole DSL thing - do we create them in code all the time?