An endofunctor is a Functor from a category to itself. All endofunctors of compose, so they form a monoid — indeed a strict Monoidal Category under composition, whose monoids are monads.
Sources: DaoFP §8.3 (“Endofunctors”), Chapters 12–14; Kittenlab Lecture 7 (order-preserving maps as endofunctors).
- In Haskell an endofunctor of is a type constructor
f :: Type -> Typewith anfmap:List,Maybe,Identity,Const c,WithInt(DaoFP Exercise 8.3.1). - Algebras and coalgebras of endofunctors define recursive data types (Initial Algebra, Terminal Coalgebra).
- Every Haskell endofunctor is strong because is self-enriched (DaoFP §20.2).