class (Real a) => IsRational a instance IsRational Integer instance (Integral a) => IsRational (Ratio a) とすれば Float や Double を弾きつつ toRational を使えるかな(toRational に付随する rewrite rule のことを考えると、自前での実装はしたくない)
2018-03-15 21:50:06特定の型の場合に効率的な実装を与えたい場合の手段として型クラスと rewrite rule があるが、(最適化オプションや多相性によらず)確実に効率的な実装を使わせるには型クラスの方が良い。しかし、型クラスにあれもこれも押し込むと肥大化してしまう。
2018-03-15 21:53:50何気なく tlmgr update --all したら pandoc で生成した LaTeX ファイルのコンパイルが通らなくなった
2018-03-16 13:14:43pandoc filter で毎回 inkscape を呼び出すのは効率が悪すぎるし、一回処理したものをキャッシュするべきか
2018-03-16 13:24:37なんかMarkdown中の一部のLaTeX数式が数式として認識されなくてエラーになる、Pandocのバグか?と思ったが、よく見るとソースが間違っていた(後ろの \) のバックスラッシュが抜けていた)
2018-03-16 14:42:30Pandoc Lua filter で使える pandoc.List モジュールはどこで定義されているんだろう、と思って探したら Haskell コードじゃなくて data/pandoc.List.lua という Lua ファイルだった
2018-03-16 15:47:39pandoc.List のモジュールには pandoc.List の値を新規に作る方法が書かれていないが、 pandoc.List:new という関数が使えるらしい pandoc.org/lua-filters.ht…
2018-03-16 15:49:45Pandoc Lua filter で使えるという Lua のバージョンが明記されていない(hslua が 5.3.4 だそうだからそれか) pandoc.org/lua-filters.ht…
2018-03-16 15:59:02しかし Lua で Unicode 文字列を扱うのは辛いな……(string モジュールのパターンがコードポイント単位じゃなくてバイト単位なのが辛い)
2018-03-16 16:04:09前に Haskell で書いた 《 》 をルビとして解釈するやつを Pandoc Lua filter として書き直している
2018-03-16 16:14:12