Halogen ComponentのState
1つの値のときも、後で増えることを考えればrecordの方がいいのでは?とも思うが、いったん普通に一つの値にするか

State系関数
purs(hs)modify :: forall s m. MonadState s m => (s -> s) -> m s
modify f = state \s -> let s' = f s in Tuple s' s'
modify_ :: forall s m. MonadState s m => (s -> s) -> m Unit
modify_ f = state \s -> Tuple unit (f s)
modify
modify allows you to update the state, given the previous state, returning the new state
modify_
modify
と同じだが、新しい状態を返さない
mofidy
を使って返り値を破棄するぐらいならこちらを使ったほうが簡潔
こっちを使うことが多い

get
現在の状態を取得
gets
gets allows you to retrieve the current state and also apply a function to it (most commonly, _.fieldName to retrieve a particular field from a record)
Stateモナドと同じノリ

initialState :: Input -> State
local stateの初期値
多相にするのと Unit
にするのって全然意味として違うくない?
引数取らないことを明示するなら後者のほうが正しい気がするが、一般的には前者を使うらしい。なんで?
