Haskellよく分からんところいろいろ

  • キャストの仕方が分からん。ceilingとかを使うしかないのか
  • 代数的データ型の中にさらに別のデータ型を入れると、それにアクセスするためにやたらと括弧が必要になるんだが、これはそういうもんなのか?そもそもあんまり入れ子にすべきでないのか?
  • 'tvec3 :: Token -> Vector3'とかいう宣言をしようとするとVector3があいまいとかいうエラー。多分Vector3の各要素のデータ型を指定する必要があるんだろうけど、どうやって指定するんだ?
    • 分かった。'tvec3 :: Token -> Vector3 GLdouble'だと
  • 「何もしない」っていうアクションはどう書くのだ
  • Class名ってどういう名前が妥当なのか。Tokenインスタンスに対してITokenとかでいい?ダメ?Javaのインタフェースみたいにほにゃららableとかすればいい?
  • module間の循環importに関してコンパイラがあっという間に音を上げるんだが、どうにかならんか。Tokenの処理を種別ごとに別モジュールに振り分けることすらできんぞ

まあなんつうか、もっと他人のコードを読まないとダメだね。どんな言語でも最初は。循環import問題だけはなんとか解決したいが……互いにimportするだけでアウトっていう縛りだとすると相当きついな。