We designed a bytecode compiler and a stack-based virtual machine for arithmetic in Haskell, including opcodes for number literals, binary operations, variables, and let expressions, and implemented a compiler that takes an expression and compiles it to a strict ByteString of bytecode. We also wrote a decompiler to aid in debugging and testing the compiler, including a disassembler that ...