data Element (a : Set) : Set where cons : a @$\rightarrow$@ Maybe (Element a) @$\rightarrow$@ Element a datum : {a : Set} @$\rightarrow$@ Element a @$\rightarrow$@ a datum (cons a _) = a next : {a : Set} @$\rightarrow$@ Element a @$\rightarrow$@ Maybe (Element a) next (cons _ n) = n record SingleLinkedStack (a : Set) : Set where field top : Maybe (Element a)