Can't resolve indirect interface
Solution 1:
I can use
interface BackendRW cpp idr | cpp where
if I don't ask for both implementations at once
negate : Neg idr => BackendRW cpp idr => cpp -> cpp
which presumably means the type checker is freer to find one implementation then the other rather than both at the same time.