haskell-jp / random #93 at 2021-09-23 11:52:50 +0900

設定にオンオフの要素があるとき、例えばその名前を checked とすると
data Checked = Checked

data Config = Config { checked :: Maybe Checked }

というようにコードにするの違和感あります?
data Config = Config { checked :: Bool }

でいいかどうか
動機としては要素が増えて Config True False False となると何番目がどれだっけとなる……けどレコードの記法すればいいかなどと逡巡しております
その方法だと Nothing が並んだとき結局どれがどれか分からなくなりますし、私なら Boolnewtype しますね。でもまぁレコードラベルがあるならそれを使う、でもいいですけど。
choice という Bool に意味をのせるライブラリがあります。実用したことはないので使い勝手はわかりません。何年か前に見たときに、個人的には割とシンプルでよさそう! と思いましたが。

https://hackage.haskell.org/package/choice-0.2.2/docs/Data-Choice.html
ほほう