when we have swhifted function, which should return F[A] but we
want to have in F[A] methods with special meaning, which should be
performed on F[_] before jumping into monad (exampe: Iterable.withFilter)
we will catch in ApplyTree such methods and substitute to appropriative calls of
shifted.