zennに記事書いた。  一応まとめとく。 Type level mapを使ったpreload風関連リソースの取り回し。Indexed monad添え »
    
    
    
    
        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: »
    
    
    
    
        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の動作を実際に動かして見てみたいと思いました。 解説は以下などで行われています。  どのようにdesugarされるかもわかります。 https://gitlab.haskell.org/ghc/ghc/-/wikis/applicative-do https://qiita.com/thimura/items/120f40c4e49f9154ac8a <*>と>>=で挙動が違う適当な型を用意して、 {-# LANGUAGE ApplicativeDo #-} import »
    
    
    
    
        HRRで型安全なクエリをかけるので大満足生活だが、主キー・外部キーがすべて同じ型(Int64等)になってしまっている状況では注意力が必要だと感じた。 どのカラムも型割り当ててもよいのだが、特に次の理由で、 query作成時に指定することが多いはずなため 関連していないidは比較できないと考えて良かったため 前置き 雑なコード生成で殴ってます。  コード生成良くないが、hrr使ってる関連では既にTableごとのモジュールのコード生成を行ってたので、考えることをやめた。 実装内容 shell scriptでpostgresのinformation_schemaへの問い合わせを使い次のようなコードを生成した。 PKごとにnewtypeを定義を生成 カラムごとに型を割り当てるため、getFieldsWithMapの挙動の一部を上書きする関数を生成 pkごとにnewtype生成する例.sh query=$(cat < »