NimbleParsec error line value is not correct

Hi everyone,

I’m playing with Nimble Parsec and when I use parsec/2 the error report incorrect location.
I’m using XML parser from example directory. This is my code

defmodule SimpleXML do
  import NimbleParsec

  @doc """
  Parses a simple XML.
  It is meant to show NimbleParsec recursive features.
  It doesn't support attributes. The content of a tag is
  either another tag or a text node.
  defparsec(:parse, parsec(:node) |> eos())

  tag = ascii_string([?a..?z, ?A..?Z], min: 1)
  text = ascii_string([not: ?<], min: 1)

  opening_tag = ignore(string("<")) |> concat(tag) |> ignore(string(">"))
  closing_tag = ignore(string("</")) |> concat(tag) |> ignore(string(">"))

    |> repeat(lookahead_not(string("</")) |> choice([parsec(:node), text]))
    |> concat(closing_tag)
    |> wrap()

input = """
      <gson>grand son</gson

Here I miss > on gson closing tag. But the message report on line 4

{:error, "expected string \"</\"",
 "<fa>\n    <son>son</son>\n    <dau>\n    <gson>grand son</gson\n    </dau>\n  </fa>\n</foo>",
 %{}, {5, 30}, 32}

It seems that NimbleParsec return the error for out most tag that not complete parsing, not the tag which really cause the error.

Do you have any idea?