quote def zero = 0
def zero = 0
quote zero
zero
quote def one_two_three = [1, 2, 3]
def one_two_three = [1, 2, 3]
quote one_two_three
one_two_three
quote def double = fn (x) { x * 2 }
def double = fn (x) { x * 2 }
quote double
double
quote double(200)
double(200)
quote double(zero)
double(zero)
quote def double_tuple = macro (x) do
  quote do
    x = ^ unquote(x)
    {x, x}
  end
end
def double_tuple = macro (x) do
  quote do
    x = ^ unquote(x)
    {x, x}
  end
end
quote double_tuple
double_tuple
quote double_tuple(200)
double_tuple(200)
quote double_tuple(zero)
double_tuple(zero)
quote double_tuple(one_two_three)
double_tuple(one_two_three)
quote def reverse = fn {
  (x) { reverse(x, []) }
  ([], acc) { acc }
  ([a | b], acc) { reverse(b, [a | acc]) }
}
def reverse = fn {
  (x) { reverse(x, []) }
  ([], acc) { acc }
  ([a | b], acc) { reverse(b, [a | acc]) }
}
quote reverse
reverse
quote reverse([1, 2, 3])
reverse([1, 2, 3])
quote def reverse = fn {
  (x) { reverse(x, []) }
  ([], acc) { [:reversed | acc] }
  ([a | b], acc) { reverse(b, [a | acc]) }
}
def reverse = fn {
  (x) { reverse(x, []) }
  ([], acc) { [:reversed | acc] }
  ([a | b], acc) { reverse(b, [a | acc]) }
}
quote reverse
reverse
quote reverse([1, 2, 3])
reverse([1, 2, 3])
quote def reverse = fn {
  (x) { reverse(x, []) }
  ([], acc) { acc }
  ([a | b], acc) { reverse(b, [a | acc]) }
}
def reverse = fn {
  (x) { reverse(x, []) }
  ([], acc) { acc }
  ([a | b], acc) { reverse(b, [a | acc]) }
}
quote reverse
reverse
quote reverse([1, 2, 3])
reverse([1, 2, 3])
quote def reverse = fn (x) { List.reverse(x) }
def reverse = fn (x) { List.reverse(x) }
quote reverse
reverse
quote reverse([1, 2, 3])
reverse([1, 2, 3])
quote module()
module()
quote search_modules()
search_modules()
quote reverse
reverse
quote def reverse = fn (x) { [:reversed | List.reverse(x)] }
def reverse = fn (x) { [:reversed | List.reverse(x)] }
quote reverse
reverse
quote reverse([1, 2, 3])
reverse([1, 2, 3])
quote module()
module()
quote search_modules()
search_modules()
quote reverse
reverse
quote def reverse = fn (x) { List.reverse(x) }
def reverse = fn (x) { List.reverse(x) }
quote reverse
reverse
quote reverse([1, 2, 3])
reverse([1, 2, 3])
quote module()
module()
quote search_modules()
search_modules()
quote reverse
reverse
