 
   defp do_assert_receive(expected, timeout, message) do
     binary = Macro.to_string(expected)
+    message = message ||
+      "Expected to have received message matching #{binary}"
 
     { :receive, meta, args } =
       quote do

  end

  defp do_refute_receive(not_expected, timeout, message) do
    binary = Macro.to_string(not_expected)

    quote do
      receive do
        unquote(not_expected) = actual ->
          flunk unquote(message) || "Expected to not have received message matching #{unquote binary}, got #{inspect actual}"
      after
        unquote(timeout) -> false
      end
    end
  end


          unquote(expected) = received -> received
        after
          unquote(timeout) ->
            flunk unquote(message)
        end
      end

