It\'s possible to encode various types in the untyped lambda calculus through higher order functions.
Examples: zero = λfx. x one = λfx. fx two = λ
Well, we already have tuples and booleans, hence we can represent Either and in turn any non-recursive sum type based on that:
Either
type Either a b = (Bool, (a, b)) type Maybe a = Either () a
And Maybe is a member of the Monad type class. Translation to lambda notation is left as exercise.