     end
   end
 
-  defp translate_assertion({ op, _, [{ :access, _, [container, base] }] }) when negation?(op) do
+  defp translate_assertion({ op, _, [{ :access, _, [container, base] }] }, _else) when negation?(op) do
     quote do
       container = unquote(container)
       base = unquote(base)

    quote do: (var!(op) == :! or var!(op) == :not)
  end

  defp translate_assertion({ :==, _, [left, right] }) do
    { expected, actual } = guess_expected_and_actual(left, right)
    assert_operator :==, expected, actual, "equal to (==)"
  end

  defp translate_assertion({ :<, _, [left, right] }) do
    assert_operator :<, left, right, "less than"
  end

  defp translate_assertion({ :>, _, [left, right] }) do
    assert_operator :>, left, right, "more than"
  end

  defp translate_assertion({ :<=, _, [left, right] }) do
    assert_operator :<=, left, right, "less than or equal to"
  end

  defp translate_assertion({ :>=, _, [left, right] }) do
    assert_operator :>=, left, right, "more than or equal to"
  end

  defp translate_assertion({ :===, _, [left, right] }) do
    { expected, actual } = guess_expected_and_actual(left, right)
    assert_operator :===, expected, actual, "equal to (===)"
  end

  defp translate_assertion({ :!==, _, [left, right] }) do
    { expected, actual } = guess_expected_and_actual(left, right)
    assert_operator :!==, expected, actual, "not equal to (!==)"
  end

  defp translate_assertion({ :!=, _, [left, right] }) do
    { expected, actual } = guess_expected_and_actual(left, right)
    assert_operator :!=, expected, actual, "not equal to (!=)"
  end

  defp translate_assertion({ :access, _, [container, base] }) do
    quote do
      container = unquote(container)
      base = unquote(base)

  end

  @doc """
  Asserts the `not_expected` value is nil or false.
  In case it is a truthy value, raises the given message.

  ## Examples

      refute true, "This will obviously fail"

  """
  def refute(not_expected, message) do
    not assert(!not_expected, message)
  end

