
  -spec apply(Fun, Args) -> term()
                 when Fun :: function(), Args :: [term()].

  Calls a fun, passing the elements in Args as arguments.

  If the number of elements in the arguments are known at compile
  time, the call is better written as Fun(Arg1, Arg2, ... ArgN).

  Warning:
    Earlier, Fun could also be specified as {Module, Function},
    equivalent to apply(Module, Function, Args). This use is
    deprecated and will stop working in a future release.
