I would imagine

> (flip when) do <N> putStrLn "Where do the parentheses go?" <N> True

should be parsed as

> (flip when) (do { putStrLn "Where do the parentheses go?"; True; })