see functional programming
#stub
fmap id = id -- identity fmap (f . g) = fmap f . fmap g -- composition