foo(m [] do end)
         ^~ unexpected 'do'; expected a `)` to close the arguments
         ^~ unexpected 'do', expecting end-of-input
         ^~ unexpected 'do', ignoring it
            ^~~ unexpected 'end', ignoring it
               ^ unexpected ')', ignoring it

foo(m -> {} do end)
            ^~ unexpected 'do'; expected a `)` to close the arguments
            ^~ unexpected 'do', expecting end-of-input
            ^~ unexpected 'do', ignoring it
               ^~~ unexpected 'end', ignoring it
                  ^ unexpected ')', ignoring it

foo(m (1) do end)
          ^~ unexpected 'do'; expected a `)` to close the arguments
          ^~ unexpected 'do', expecting end-of-input
          ^~ unexpected 'do', ignoring it
             ^~~ unexpected 'end', ignoring it
                ^ unexpected ')', ignoring it

