blog.ryota-ka.me

Coyonedaって…… お前functorがデータ構造になっただけやんけ!!

Keywords:

operational(あるいは freer)と呼ばれているものの説明として,

  • a) Coyonedaを使うと,kindが* -> *であるような任意の型からfunctorを作り出せる
    • 任意の型f :: * -> *についてCoyoneda fFunctorのインスタンスになる
  • b) Freeを使うと,任意のfunctorからmonadを作り出せる
    • Functorのインスタンスである任意の型fについてFree fMonadのインスタンスになる
  • aとbを組み合わせると,適当な型f :: * -> *からmonadを作り出せて便利〜🙌

というストーリーが往々にして語られる*1

続きを読む