anchor.diff:  			more(Bin, fun (NewBin) -> parse_headers(NewBin, Pattern, Acc) end)
   	end.
   
  --spec parse_body(binary(), pattern()) -> more(body_result()).
  -parse_body(Bin, Pattern = {P, PSize}) when byte_size(Bin) >= PSize ->
  +-spec parse_body(binary(), patterns()) -> more(body_result()).
  +parse_body(Bin, Pattern = {{P, PSize}, _}) when byte_size(Bin) >= PSize ->
   	case binary:match(Bin, P) of
   		{0, _Length} ->
   			<<_:PSize/binary, Rest/binary>> = Bin,
  
positive.code: 			more(Rest, fun (NewBin) -> parse_boundary_eol(NewBin, Pattern) end)
  	end.
  
  -spec parse_boundary_crlf(binary(), pattern()) -> more(part_result()).
  parse_boundary_crlf(<<"\r\n", Rest/binary>>, Pattern) ->
  	% The binary is at least 2 bytes long as this function is only called by
  	% parse_boundary_eol/3 when CRLF has been found so a more tuple will never
  
negative.code: 	more(Bin, fun (NewBin) -> parse_boundary_tail(NewBin, Pattern) end).
  
  %% @doc Skip whitespace and unknown chars until CRLF.
  -spec parse_boundary_eol(binary(), patterns()) -> more(part_result()).
  parse_boundary_eol(Bin, Pattern) ->
  	case binary:match(Bin, <<"\r\n">>) of
  		{CrlfStart, _Length} ->
  