[capturing some observations from tutorial session before I forget]
show_call_graph expects the graph not a bloq, users must call bloq.call_graph which returns the graph and the "sigma" (we often ignore one or the other of these in the code too). Several people were caught out and expected to be able to do show_call_graph(bloq), which returns an unintuitive error related to a missing "is_directed" attribute (xref #1063). We should add a method (or change show_call_graph) to just accept a bloq. Or add to the show_bloq helper method.
Some people were returning bloq classes rather than instances (TGate rather than TGate()) in build_call_graph (which I guess a linter / typechecker would catch) but it resulted in a very odd error message which we should probably try to catch.
A simpler way to wire up bloqs. It would be nice to be able to compose higher level bloqs in a more automatic way (this is very vague) but somewhat related to autopartition I think..
[capturing some observations from tutorial session before I forget]