Realistically, in a bigger project, you might have a NodeSystem type n layers deep buried.
E.g. you just grabbed a hypothetical canvas dependency, which has a Canvas. Can you tell if it does any form of IO or not?
E.g. you just grabbed a hypothetical canvas dependency, which has a Canvas. Can you tell if it does any form of IO or not?
If Canvas contains NodeSystem, then Canvas must be a capability type itself.