3 ms·
But in languages supporting this you do know that it's either A or B and you can use match expressions to deal with both cases. Usually these are the languages
by carlmr 5y ago
But in languages supporting this you do know that it's either A or B and you can use match expressions to deal with both cases.
Usually these are the languages with more focus on type safety, like OCaml, Haskell and Rust.
- rixed 5y agoTo be fair, in OCaml, Haskell or Rust the type "A | B" also had to be declared beforehand.
- deleted 5y ago[deleted]
- carlmr 5y agoYes, but it doesn't really change the way you could handle it, and what I wanted to point out is that it actually helps with type safety, enabling you to create total functions.
- Zababa 5y agoNot exactly. For example, in Rust, you can do unions for traits: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=81fb8e831abf5df84944c54c25c562d6 https://play.rust-lang.org/?version=stable&mode=debug&editio.... OCaml has the same system for its objects, where objects are structurally typed.