It's easier to write generated tests with this abstraction, but it doesn't have to be visible to users.