-- | Haskell language pragma {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} -- | Haskell module declaration module Main where -- | Miso framework import import Miso import Miso.String import Miso.Mathml data Model = Empty deriving Eq data Action = NoOp deriving (Show, Eq) -- | Entry point for a miso application main :: IO () main = startApp App {..} where initialAction = NoOp -- initial action to be executed on application load model = Empty -- initial model update = updateModel -- update function view = viewModel -- view function events = defaultEvents -- default delegated events subs = [] -- empty subscription list mountPoint = Nothing -- mount point for application (Nothing defaults to 'body') -- | Updates model, optionally introduces side effects updateModel :: Action -> Model -> Effect Action Model updateModel NoOp = noEff -- | Constructs a virtual DOM from a model viewModel :: Model -> View Action viewModel x = nodeMathml "math" [] [ nodeMathml "msup" [] [ nodeMathml "mi" [] [text "x"] , nodeMathml "mn" [] [text "2"] ] ]