### All of Basic Category Theory

- YOW! Lambda Jam 2018

Have you ever been puzzled by the suggestion that

`data Lens s a = Lens { get :: s -> a, set :: a -> s -> s }`

might be in some sense the same as

`forall f. Functor f => (a -> f a) -> s -> f s/code>`

or, more to the poi...