haskell-language-server+emacsでのハマりどころ2020年夏

Setup.hs Setup.hsに対するエラー prefix not foundみたいなのや、エラーがログからは見当たらなかったりするが、とにかくfaied filesのSetup.hsが入る 次のhie.yamlでSetup.hsは解決した cradle: multi: - path: "./" config: cradle: stack: - path: "./src" component: "cooking-recipe-dsl: »

make emacs 27

native json supportが使いたい!!! ./autogen.sh sudo zypper in libjansson-devel sudo zypper in makeinfo sudo zypper in libgnutls-devel ./configure --with-json --without-x »

ApplicativeDo拡張を試す

ApplicativeDoの動作を実際に動かして見てみたいと思いました。 解説は以下などで行われています。 どのようにdesugarされるかもわかります。 https://gitlab.haskell.org/ghc/ghc/-/wikis/applicative-do https://qiita.com/thimura/items/120f40c4e49f9154ac8a <*>と>>=で挙動が違う適当な型を用意して、 {-# LANGUAGE ApplicativeDo #-} import »

HRRで主キー、外部キーごとに新しく型を割り当ててみた(雑)

HRRで型安全なクエリをかけるので大満足生活だが、主キー・外部キーがすべて同じ型(Int64等)になってしまっている状況では注意力が必要だと感じた。 どのカラムも型割り当ててもよいのだが、特に次の理由で、 query作成時に指定することが多いはずなため 関連していないidは比較できないと考えて良かったため 前置き 雑なコード生成で殴ってます。 コード生成良くないが、hrr使ってる関連では既にTableごとのモジュールのコード生成を行ってたので、考えることをやめた。 実装内容 shell scriptでpostgresのinformation_schemaへの問い合わせを使い次のようなコードを生成した。 PKごとにnewtypeを定義を生成 カラムごとに型を割り当てるため、getFieldsWithMapの挙動の一部を上書きする関数を生成 pkごとにnewtype生成する例.sh query=$(cat < »