{ parameter (or (or (nat %add) (nat %sub)) (unit %default)) ; storage int ; code { AMOUNT ; PUSH mutez 0 ; ASSERT_CMPEQ ; UNPAIR ; IF_LEFT { IF_LEFT { ADD } { SWAP ; SUB } } { DROP ; DROP ; PUSH int 0 } ; NIL operation ; PAIR } }