A JVM by haskell