Yesterday we started with Functor, which adds map operator, and ended with polymorphic sequenceA function that uses Pointed[F].point and Applicative ^(f1, f2) {_ :: _} syntax.
Functor
map
sequenceA
Pointed[F].point
^(f1, f2) {_ :: _}