GHCでCall Stackを表示する

テストのassertationやエラーログなどで使う。 GHC.Stackを使うとstackを取得できる。 {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ImplicitParams #-} import Data.Text (Text) import GHC.Stack main = do putStrLn "before error" printStack - line »

Equality constraints (GHC拡張)

関数の型のコンテキストでのチルダ(~)はなんだろう GHC拡張のEquality constraintsで、 t1 ~ t2 型t1とt2が等しいというのを示す。 いつ使うのだろう Type Familiesを使っている時に必要なる。 associated typeを使ったクラスのあるインスタンスが前提だが、そのモジュールは参照したくないモジュールで利用。 -- module A class A type Foo a -- module B import A »

haskellのライブラリにプルリク送ったメモ

前提 persistent-mysqlを修正したい stack使ってる 修正 Idに利用するフィールドのカスタマイズのうち、型の変更が、mysqlで動作しなかった 利用する側のプロジェクトのstack.yamlをローカルに修正 packages: - '.' - '../../persistent/persistent' - '../../persistent/persistent-mysql' (なぜか、ローカル見てくれなかったら、バージョン上げてみる..?) default=の機能もpostgreと同様の対応しようとしたが、 »