{ parameter (or (or int int) unit) ; storage int ; code { DUP ; CAR ; DIP { DUP } ; SWAP ; CDR ; DIP { DUP } ; SWAP ; IF_LEFT { DUP ; IF_LEFT { DUP ; DIP { DIP { DIP { DUP } ; SWAP } ; SWAP } ; SWAP ; DIP { DUP } ; SUB ; SWAP ; DROP ; SWAP ; DROP } { DUP ; DIP { DIP { DIP { DUP } ; SWAP } ; SWAP } ; SWAP ; DIP { DUP } ; ADD ; SWAP ; DROP ; SWAP ; DROP } ; SWAP ; DROP } { DROP ; PUSH int 0 } ; NIL operation ; PAIR ; SWAP ; DROP ; SWAP ; DROP ; SWAP ; DROP } }