ну например у тебя есть в контексте юзер, соответственно, т.к. он не всегда есть будет что-то вроде
HasContext[F, Option[User]] или даже HasContext[F, Either[IncompleteAuth, User]]
в би это можно бы было выразить как
BiContext[F, IncompleteAuth, User]
и в случае незаконченной аутентификации ты бы ещё послал его на страницу какую-то с логином или там проверил, ввёл ли он смс или что с ним не так