Aesthetic simplification
Added a concept iterator (same DFS as apply)
Made behaviour of input iterator more explicit
Aesthetic simplification