This is the same as Haskell:
import Prelude
import Data.Either
let a = Left "a" :: Either String (Either String Int)
let b = Right (Left "b") :: Either String (Either String Int)
let c = Right (Right 123) :: Either String (Either String Int)
join a -- Left "a"
join b -- Left "b"
join c -- Right 123
source
share