Definitely something like that is possible.  I thought about it while adding that strict dimension check, but decided to keep it simple to start.  I've only spent a little time with the generalized API of `solve`, and it feels a bit awkward.  Wouldn't it have made more sense to generalize the shape of `b` to (M, ...), which then includes (M,) and (M, N)?  (Just roll M to the end for the purposes of broadcasting.) Anyway, I'll look at this some more, and see what makes sense for `solve_circ`.