conditionals and maybe indexed monads