haskell-jp / random #94 at 2021-11-01 18:30:29 +0900

想像以上にabuseできますねw OverloadedRecordDot の「Record」とはなんだったのか... :sweat_smile:
overloaded record dot も HasField を見るのか~
もはやOverloadedDotと呼ぶべきですね。qualified import前提にするか、型名を入れて他と被らないようにするかの二択だったところに新たな選択肢が
フィールドにプレフィクス付けなくて済むだけでメチャクチャありがたいと思ってたら拡張メソッド記法が生えてきた
Rustのimplとパワーが似通っていますね…
以前もここで紹介したんですが、実際impl宣言っぽいことを実現した例もあるんですよ
https://haskell-jp.slack.com/archives/C4M4TT8JJ/p1628401613012900
THでimplとか無いかなーって思ってたらそれそのものが既にあったんですね
ただQuasiQuoteで書いていくとsyntax highlightとかflycheckとかがつらい気もするからここはやるならネイティブのサポートが欲しい気もしますね
impl ''User [d|

    greet :: String -> IO ()
    greet message = do
        putStrLn $ concat [message, ", ", self.name]
|]

まだできてないみたいですが仮に使い方がこう :point_up: だとすると使うQuasiQuoterは標準の [d| だけなので、その心配はいらないかと。
あーなるほど、確かにEmacsのhaskell-modeとかも標準のものには一応対応してるっぽいですね