Kaleidoscope: Implementing a Language with LLVM