In fact, the `self.parse` returns a completely different object, so it behaves as you expect.

A different problem is that my implementation is probably a bit too implicit, and your comment is the right sign :)