This is the execution layer, i.e. how is that Scala program turned into machine code. You can make a Haskell implemented using Truffle. Or Rust etc... Haskell, defines the semantics of a program, while truffle turns that semantics into executable code.