Discards the value in a functor, retaining the functor's structure.
Discarding values is especially useful when using Applicative functors or Monads to implement
effects, and some operation should be carried out only for its effects. In do-notation, statements
whose values are discarded must return Unit, and discard can be used to explicitly discard their
values.