The following compiles Haskell to WebAssembly and runs it.

Only a tiny fragment of the language is supported. There is almost no syntax sugar.

System calls:

putStr :: String -> IO ()
putInt :: Int -> IO ()

There is no garbage collection.