The paper states: > We use the Inv constraint family to force the target type of the left morphism to match the source type of the right morphism. So shouldn't the [`Inv`](https://github.com/dorchard/effect-monad/blob/e5e4ef7ed739561ff4e1ac2e2ec9e2aaefa9db87/src/Control/Effect/ParameterisedAsGraded.hs#L22) type read: ```haskell type Inv T (M a b) (M c d) = b ~ c ```