The class Compose<F0,F1,F2,F3> is used to specify the type of a
composed functor, i.e., the functor that results from composing
functors of type F1, F2, and F3, into a functor of
type F0. The arguments F2 and F3 are optional,
such that between two and four functors can participate in the
composition. The class is used in conjunction with the compose
function; see there for an explanation on how exactly the functors
are combined.

This class encapsulates the differences in
implementation of the composers across various platforms. But in any
case, Type refers to a model of AdaptableFunctor.