The type `DiagramResult` would be best named `Result`.  This will conflict with Backend's associated type named 'Result'.  In practice I don't think you would want both at once, but it could be confusing for finding information.  What do you think?