Union Types in Flow and Reason
Nitpicky but critical detail: union types are not the same as &quot;sum&quot; types such as what you get in Reason, Purescript, and Elm. Union types are convenient for adding atop a dynamic language or modeling records (although, Purescript&#x27;s row types are better), but they are less capable of abstraction.<p>The key example to differentiate union and sum types is `int union int == int` whereas `int sum int` is something unique and different from `int`. A sum type keeps track of the &quot;left side&quot; versus the &quot;right side&quot;.<p>So, all said and done not only is Reason producing faster, tinier code... it&#x27;s also managing a more sophisticated and powerful abstraction!