type Stack a = [a] empty = [] push = (:) pop = tail top = head is_empty = null test = top . pop . push 8 . push 3 $ empty