Chain combines multiple modules of the same module type such that they are
executed sequentially and their outputs combined.
For example, process modules may be Chained to carry out successive
processing operations. By contrast, listing modules of the same type
would split the workflow into multiple parallel workflows, each using a
different module at this step.
Similarly for occurrence or covariate modules the datasets are joined
(row- or layer-wise) whereas list would carry out separate analyses.
Model and output modules may not be chained.
Developers should note that this function is not actually used - calls using
Chain are parsed by workflow, with behaviour similar to this function.