ImpureAp is a list of independent effects and a pure function
creating a value with all the resulting values once all effects have
This essentially models a sequence + map operation but it is important to understand that the list of
Union objects can represent different effects and be like: List[Option[Int], Future[String], Option[Int]].
Interpreting such an Eff value for a given effect (say Option) consists in:
add one last action to be executed after any computation chained to this Eff value