type 'a _list = Nil | Cons of 'a * 'a _list
exception EmptyListException
let push xs x = Cons(x, xs)
let pop = function Nil -> raise EmptyListException | Cons (x, c) -> (x, c)
let rec each f = function Nil -> () | Cons (x, xs) -> f x; each f xs
let x, xs = pop (push (push (push Nil 1) 2) 3)
dHlwZSAnYSBfbGlzdCA9IE5pbCB8IENvbnMgb2YgJ2EgKiAnYSBfbGlzdApleGNlcHRpb24gRW1wdHlMaXN0RXhjZXB0aW9uCmxldCBwdXNoIHhzIHggPSBDb25zKHgsIHhzKQpsZXQgcG9wID0gZnVuY3Rpb24gTmlsIC0+IHJhaXNlIEVtcHR5TGlzdEV4Y2VwdGlvbiB8IENvbnMgKHgsIGMpIC0+ICh4LCBjKQpsZXQgcmVjIGVhY2ggZiA9IGZ1bmN0aW9uIE5pbCAtPiAoKSB8IENvbnMgKHgsIHhzKSAtPiBmIHg7IGVhY2ggZiB4cwpsZXQgeCwgeHMgPSBwb3AgKHB1c2ggKHB1c2ggKHB1c2ggTmlsIDEpIDIpIDMpCmxldCAoKSA9IHByaW50X2ludCB4OyBlYWNoIHByaW50X2ludCB4cw==