defmodule Stack do def new, do: [] def empty?([]), do: true def empty?(_), do: false def pop([h|t]), do: {h,t} def push(h,t), do: [h|t] def top([h|_]), do: h end