Actegories: 범주론이 프로그래밍의 광학(optics)을 설명하는 방식
프로그래밍에서 렌즈, 프리즘, 트래버설 같은 optics의 중심에는 'actegory'라는 개념이 있다. 이 글은 Bartosz Milewski가 monoidal category의 정의에서 출발해, monoidal category가 다른 범주에 작용하는 구조인 actegory를 Haskell 코드와 함께 설명한다. 구체적으로는 텐서 곱과 단위 대상, 그리고 행동(action)의 일관성 조건을 다루고, monoidal functor를 통해 actegory들 사이의 관계를 탐구한다. Haskell의 타입 클래스와 함수 종속성(functional dependency)을 이용해 이러한 추상적 개념을 명확하게 구현하는 방법을 보여준다.
Actegory는 monoidal category의 행동을 지원하는 범주로, 이 범주의 대상들을 monoidal category의 대상들로 '곱하거나' '스케일링'한다고 생각할 수 있다.