[ new ] Big Step Semantics via the Partiality *Applicative* Functor

Using the Delay Monad is quite often overkill: when evaluating `e1 + e2`
for instance, one can evaluate `e1` and `e2` "in parallel" rather than
sequentially. This corresponds to an Applicative instance for the delay
functor which behaves like:
(later^m (now f)) <*> (later^n (now v)) == later^(max m n) $ now (f v)
rather than the one derived from the monadic instance:
(later^m (now f)) <*> (later^n (now v))   == later^(m + n) $ now (f v)

Here we try to stay Applicative as much as possible. The only sequentiality
is introduced by evaluating the application of an expression reducing to a
closure to an argument.