This is part of Categories for Programmers. Previously: Simple Algebraic Data Types. See the Table of Contents. At the risk of sounding like a broken record, I will say this about functors: A functor is a very simple but powerful idea. Category theory is just full of those simple but powerful ideas. A functor is a mapping between categories. Given two categories, C and D, a functor F maps objects