import Haste main :: IO () main = do Just inp <- elemById "user-input" Just outp <- elemById "script-output" onEvent inp OnKeyUp $ \_ -> do text <- getProp inp "value" setProp outp "innerHTML" text return () -- Alternative that uses `withElems` to retrieve the elements from the document main_alt :: IO () main_alt = withElems ["user-input","script-output"] script where script [inp,outp] = do onEvent inp OnKeyUp $ \_ -> do text <- getProp inp "value" setProp outp "innerHTML" text return ()