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

続きを読む