Scala does not have true sum types though, it uses subtyping to encode them. When I tried it, I found that pattern matching was often unsafe.
I am glad that Scala has raised awareness of FP, but its implementation of FP is heavily compromised by its focus on OO.