2013-11-18 ConstraintKindsとTypeFamilies haskell GHC拡張のConstraintKindsについて調べた。 下のページを参考にした。 Constraint Kinds for GHC | :: (Bloggable a) => a -> IO () Constraint Constraintはその名の通り制約。 HaskellではConstraintというのは次のどれかの事を言うらしい。 型クラス制約 例) 上のShow a Implicit parameter 例) ?x::Int Equality制約 例) a ~ Int 上の組み合わせ 例) (Show a, Read a) 一番分かりやすいのは型クラス制約で、たとえば 下のprintという関数は引数を文字列にして標準出力に出力する。 ghci> :type print print :