Someone else and not an expert. But Maybe types are implemented with Monads, Maybe is a common monad.
Its how rust does error handling for example, you have to test a return value for “something or nothing” but you can pass the monadic value and handle the error later, in go you have to handle the error explicitly (almost) all the time.
Good explanation.
This has the interesting implication that the relative speed between the portals is “added” to whatever goes through it.
Example: the blue portal is on a train running with the same speed in opposite direction. The people-bundle would instantaneously be accelerated to twice the speed of each of the trains. (This becomes a real headscratcher if you were able to put the portals in a particle accelerator)