icon

Haskell じゃなくて、GHC か

icon

Haskell、higher-rank type alias、type family とかいれて、あそこまでの自然な type-level の使用感を出せてるのすごいな (自然な使い方ができるとは言っていない)。type system 設計してると改めて思うわ

2023-12-27 23:48:20 (仮)の投稿 kakkokari_gtyih@misskey.io
icon

このアカウントは、notestockで公開設定になっていません。

icon

人が足りないところ、実は人を受け入れる体制がないのでは?とはちょっと思ってる。人を受け入れる体制がないので、スキルを求めるが、その結果人を探すハードルが高くなってるみたいなのがある気がするな。負のスパイラルって感じだ

icon

人に嫌われる sub-typing と、普段意識しない sub-typing があるんかな?

icon

そういや、sub-typing を嫌う人たちは一定数いるが、sub-typing が入ってない言語ってあまりない気がするな。Haskell も幾つかそういう規則あるし、基本多相型で推論搭載する時点で sub-typing ない方が不便な場合が多い

icon

今日のお仕事終わり!

icon

type と type scheme で行き来できるようなもんだしな。それと同じで type とふわふわ type 用意して、ふやふわ type から type にせんと型付けできないところとふわふわ type でも型付けできるとこ用意すればええだけか

icon

よく考えれば System-F の instantiation / generalizing も stage 化みたいなものか

icon

いやでもこれ普通の declarative でも stage つければ書けるか

icon

つまりリテラル直書きで使う際は柔軟な推論してくれるが、一回変数とかに当てはめると型が固定化されるみたいなやつ

icon

具体的には、

#let x: (a: Int, b: String) = (1, "str") // ok
#let y = (1, "str")
#let z: (a: Int, b: String) = y // ng, y is inferred to `(?1: Int, ?2: String)`
みたいなやつが書ける

icon

bidirectional typing だと、ある範囲では柔軟な推論をしてくれるけど、ある程度になると型が固定化されるみたいな型システムも割と柔軟に書けることに気づいた

icon

寝る時つけるようのゆるゆるソックスが気に入ったので買い足そうと思ったら売れ切れてた。悲しみ