Aqui está o post que eu vou me referir . Além disso, vou usar os mesmos trechos do OP nessa pergunta para não separar os materiais . É sabido que uma ArrowApplyinstância produz uma Mônada e vice-versa: newtype ArrowMonad a b = ArrowMonad (a () b) instance Arrow a => Functor (ArrowMonad a)...