Why this? Isn't it more simple to flatten before calling?

Explicit return type?