type Stack a = [a]

empty = []
push = (:)
pop = tail
top = head
is_empty = null

test = top . pop . push 8 . push 3 $ empty