About moving arities: why not to move them to `EdgeType`? This way we can keep `Rel`s clean and semantically it seems to be fine: 
- `EdgeType` defines the character of relationship (including arity)
- `RelType` — "Witnesses of a sourceType/type adscription to an edge type`