There's also a Go interpreter with REPL too haha! Go is a really good language for writing compilers and interpreters, one of Rob Pike's first big articles about Go was exactly on that subject. He was the one that championed coroutines and channels. Their absence is what I hate most about working with Rust. It was just so weird writing an RPC handler without coroutines to fan out the work.