For the time being I'll change current `prettyTree` implementation to allow only `Iterable<Pretty>` as argument and do the map to document in it, but again, nothing will prevent the client from calling it with any "list of pretties".

```dart
Document prettyTree(String name, Iterable<Pretty> iterable,
                    {int indentation: _DEFAULT_INDENTATION}) =>
  text(name) + _enclose(iterable.map((t) => t.pretty),
      (space + openingBrace), closingBrace, empty, indentation);
```

and the client:
```dart
class Tree extends Object with Pretty {
  final String name;
  final List<Tree> children;

  Tree(this.name, this.children);

  Document get pretty =>  prettyTree(name, children);
}
```