-
@ YoshikuniJujo
2025-04-30 03:24:11class Foo a where f :: (a -> a) -> a -> a というクラスと class Bar a where g :: (forall b . b -> b) -> a -> a とだと、「関数gのほうが引数に強い条件をつけている」ことから「クラスBarのほうがインスタンスにゆるい条件しか要求しない」ということになる。 class Bar a where ... default g :: Foo a => (forall b . b -> b) -> a -> a g = f とはできるけど、逆はできないので確かめられる。 けど、なんか、まぎらわしいな。