BlockArguments does not apply to arguments to arrow control operators
I think this program should be accepted, but it is rejected with a parse error:
{-# LANGUAGE Arrows, BlockArguments #-}
module BlockArrows where
import Control.Arrow
blah :: Kleisli Maybe () ()
blah = proc () -> (| (<+>) (returnA -< ()) do
returnA -< () |)
BlockArrows.hs:8:44: error: parse error on input ‘do’
|
8 | blah = proc () -> (| (<+>) (returnA -< ()) do
| ^^
This seems like probably just an oversight to me; there’s no reason this shouldn’t work as far as I can tell.