> But the category / AQL schema S has only two objects, A and B, neither of which are Haskell types. So there's no direct way to make S into an instance of Conal's category type class.
>
> If there's a way around the issue I described above, I would very much like to learn about it.

You appear to want a *Constrained Category* which Conal defines in ยง6.