Tree:
'(root (left (left-left left-right)) (right (right-left right-right)))
Graph: '(graph (#1=node1 #2=node2) (#2# #3=node3) (#3# #1#))
Solved problems since at least the early 90s.> Yet using it to paint is a lot harder.
Sure, but drawing is only one activity among many possible activities.
> As a software developer you're often manipulating only text.
I think that's true for most users: they are reading articles (text); writing comments (text); sending social updates (rich text); watching videos (not text); playing games (not text, but may have textual content, e.g. in-game chat).