So I can explicitly define everything via:
type SchedulerState[X] = StateT[Trampoline, D.SchedulerState, X]
type SchedulerM[A] = XorT[SchedulerState, String, A]
def bailScheduler[A](msg: String): SchedulerM[A] =
XorT.left[SchedulerState, String, A](StateT.pure(msg))
But if i try to generalize this i get errors