haskell-jp / questions #100 at 2022-02-22 00:08:36 +0900

TypeFamilyDependencies とカインド注釈の併記ってどうすればいいんでしょう?
type family Foo a :: Type


type family Foo a = t | t -> a

がそれぞれできるんですが両方書こうと思うと……?
あ、どうもこうっぽい
type family Foo a = (t :: Type) | t -> a
最近のGHCならStandaloneKindSignaturesが使えますね
standalone kind signatures 試してダメっぽいとなったんですけど再度試すといけました
あれ?
あ、そうだ、associated type families のときに standalone kind signatures でカインド注釈書く方法が分からないんでした
class Foo t where
  type Bar :: Type -> Type
  type Bar t = r | r -> t

kind signature のつもりの type Bar :: Type -> Type が type family にされちゃう
associated type familiesに対するstandalone kind signaturesは実装されてないはずです https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0054-kind-signatures.rst#associated-types
なるほど
すっきりしました