       code: 1+2+3+4 > 15
       lhs:  10
       rhs:  15
+
+  Similarly, if a match expression is given, it will report
+  any failure in terms of that match. Given
+
+      assert [one] = [two]
+
+  you'll see:
+
+      match (=) failed
+      code: [one] = [two]
+      rhs:  [2]
+
+  Keep in mind that `assert` does not change its semantics
+  based on the expression. In other words, the expression
+  is still required to return a truth value. For example,
+  the following will fail:
+
+      assert nil = some_function_that_returns_nil()
+
+  Even though the match works, `assert` still expects a truth
+  value. In such cases, simply use `Kernel.==/2` or
+  `Kernel.match?/2`.
   """
   defmacro assert({:=, _, [left, right]} = assertion) do
     code = Macro.escape(assertion)

  end

  @doc """
  This is a negative assertion, failing if its parameter
  is truthy.

  ## Examples


      rhs:  10

  This module also provides other convenience functions
  like `assert_in_delta` and `assert_raise` to easily handle
  other common cases such as checking a floating point number
  or handling exceptions.
  """

  @doc """
  Asserts its argument is a truth value.

  `assert` instrospects the underlying expression and provide
  good  reporting whenever there is a failure. For example,
  if the expression uses the comparison operator, the message
  will show the values of the two sides. The assertion

      assert 1+2+3+4 > 15
