+ monadType = Types.canonical(monadType);
+ valueContentType = Types.canonical(valueContentType);
+ effect = Types.canonical(effect);
+ inContentType = Types.canonical(inContentType);
+ Type[] types = blockType == BlockType.MonadE
+ ? new Type[] {monadType, valueContentType, effect, inContentType}
+ : new Type[] {monadType, valueContentType, inContentType};