Yup, pretty close. Just to be clear though we don&#x27;t generate any JVM bytecode for any of the Haskell code - we compile that to native code using GHC as per usual but then we dynamically load the resulting shared objects into the JVM.<p>The static pointer thing is what allows us to share (practically) arbitrary Haskell closures with Scala&#x2F;Java. And more than that - to get Spark&#x27;s Scala code to ship these Haskell closures between machines across a cluster.