   end
 
   @doc """
+  End a string context if a string terminator inside an array is reached,
+  then expect a comma or close-array.
+  """
+  def parse(<<?", t::binary>>, [:string, :array | context], output) do
+    debug "Found close quote in a string context inside an array, passing through while expecting a comma or close-array", t, context, output
+    parse(t, [:comma_or_close_array, :array | context], output <> <<?">>)
+  end
+
+  @doc """
   End a string context if a string terminator is reached.
   """
   def parse(<<?", t::binary>>, [:string | context], output) do

  #   IO.puts " context: " <> inspect context
  #   IO.puts " output:  " <> inspect output
  # end
end

# run this inline suite with "elixir #{__ENV__.file} test"

  def parse(<<?}, t::binary>>, [:pair, :object | context], output) do
    debug "Closing pair context", t, context, output
    parse(<<?}>> <> t, [:object | context], output)
  end

  @doc """
  Object close character in object, array context. Pop object context, expect comma_or_close_array.
  """
  def parse(<<?}, t::binary>>, [:object, :array | context], output) do
    debug "Closing object context in array and expecting comma_or_close_array", t, context, output
    parse(t, [:comma_or_close_array, :array | context], output <> <<?},?]>>)
  end

  @doc """
