applicative
applicative for list
applicative for optional
applicative for constant func => const
applicative makes some sense
start on bind
flatmap that shit
bind optional
bind for reader
more definitions of bind