As pointed by @mechkg, we can drop covariance and obtain a more type-safe interface as a result.
Do we want to keep covariance? I'm tempted to drop it both for the sake of simplification and for better type safety of the graph transformation interface.
As a comparison, List is covariant, whereas Set is not.
As pointed by @mechkg, we can drop covariance and obtain a more type-safe interface as a result.
Do we want to keep covariance? I'm tempted to drop it both for the sake of simplification and for better type safety of the graph transformation interface.
As a comparison,
Listis covariant, whereasSetis not.