String.char error - (Protocol.UndefinedError) protocol String.Chars not implemented

this code is from a course from pragmaticstudio

def parse(request) do
#TODO: parse the request string into a map:
first_line = request |> String.split(“\n”) |> List.first
[method, path, _] = String.split(first_line, " ")
%{ method: method, path: path, resp_body: “”}
end

this line:
%{ method: method, path: path, resp_body: “”}
gives me the error:

== Compilation error in file lib/servy/handler.ex ==
** (Protocol.UndefinedError) protocol String.Chars not implemented for %{method: "GET", path: "/wildthings", resp_body: ""} of type Map
    (elixir 1.12.3) lib/string/chars.ex:3: String.Chars.impl_for!/1
    (elixir 1.12.3) lib/string/chars.ex:22: String.Chars.to_string/1
    (elixir 1.12.3) lib/io.ex:712: IO.puts/2
    (elixir 1.12.3) lib/kernel/parallel_compiler.ex:319: anonymous fn/4 in Kernel.ParallelCompiler.spawn_workers/7

but the code does not give an error on their screen.

the full error message:

(Protocol.UndefinedError) protocol String.Chars not implemented for %{method: "GET", path: "/wildthings", resp_body: ""} of type Map