 
   If you try to run our new macro, you will notice it won't
   even compile, complaining that the variables `k` and `v`
-  do not exist. This is because of the ambiguity: `unquote(k)`
+  does not exist. This is because of the ambiguity: `unquote(k)`
   can either be an unquote fragment, as previously, or a regular
   unquote as in `unquote(kv)`.
 
-  One solution for this problem is to disable unquoting in the
-  macro, however, doing that would make it impossible to inject
+  One solution to this problem is to disable unquoting in the
+  macro, however, doing that would make it impossible to inject the
   `kv` representation into the tree. That's when the `:bind_quoted`
   option comes to the rescue (again!). By using `:bind_quoted`, we
   can automatically disable unquoting while still injecting the

        def unquote(k)(), do: unquote(v)
      end

  In the example above, we have generated the function `foo/0` and
  `bar/0` dynamically. Now, imagine that, we want to convert this
  functionality into a macro:

      defmacro defkv(kv) do
        Enum.each kv, fn { k, v } ->
          quote do
            def unquote(k)(), do: unquote(v)
          end

        end
      end

  `:bind_quoted` will translate to the same code as the example above.
  `:bind_quoted` can be used in many cases and is seen as good practice,
  not only because it helps us from running into common mistakes but also
  because it allows us to leverage other tools exposed by macros, such as
  unquote fragments discussed in some sections below.

  Before we finish this brief introduction, you will notice that, even though
  we defined a variable `x` inside our quote:
