We compose functors by treating one of them as an argument of another one:

t (tt a)

If we want to get an access to a parameter, we should map twice (yo):

x: t (tt a)
f: a `AR_` o
 
(x `yo'yo` f): t (tt o)

Functor composition is functor too, we can aligh this reasoning with programming by using a special wrapper:

Supertype ((t `T'TT'I` tt) a) ~ (t (tt a))

If you cant to avoid using parenthesis, you can use a special type operator:

Supertype (t `T'TT'I` tt `T'I_` a) ~ (t (tt a))

So that using this wrapper we can map only once:

x: t (tt a)
wrap x: t `T'TT'I` tt `T'I_` a
 
wrap x `yo` f: t `T'TT'I` tt `T'I_` o

There is also reverse functor composition available, it’s used mostly in internal modules:

Supertype (t `T'TT'I` tt `T'I_` a) ~ (t (tt a))
Supertype (tt `TT'T'I` t `T'I_` a) ~ (t (tt a))