I like what you've done here unifying diagrams, lists of diagrams, association lists, and so on.  But `ToDiagram` is no longer th best name since it doesn't necessarily produce just diagrams.  Other suggestions: `ToDiagramLike`, `ToRenderable`, `ToResult`?