Hask를 *에 속하는 타입을 으로 가지고 함수를 arrow로 가지는 범주라고 합시다.
Free Theorem에 의하여 타입 f : * → *은 많아야 한 개의 fmap : (forall a, b ㅌ *). (a → b) → (f(a) → f(b))를 가집니다.
즉, Hask → Hask의 함자를 * → *의 타입으로 보내는 맵은 단사입니다.
그런데 타입 f : * → *, g : * → *가 주어졌을 때,
타입 f • g : * → *이 fmap을 가진다면
f와 g 모두 fmap을 가져야 하나요?
여기서 타입 a ㅌ *에 대하여 (f • g)(a) := f(g(a))입니다.
하 범주론 잘하고 싶어요 ㅜㅠ

- dc official App