SplitTypes
==========

<:SplitTypes:> is an optimization pass for the <:SSA:> <:IntermediateLanguage:>,
invoked from <:SSASimplify:>.

== Description ==

<:SplitTypes:> performs a unification-based analysis to split a datatype into
distinct instances for constructed values that are not unified.  Because
datatypes are recursive, other analyses often conflate all defs and uses of
`ConApp`-s; `SplitTypes` allows non-unified instances of a datatype to be
analyzed separately.

== Implementation ==

* <!ViewGitFile(mlton,master,mlton/ssa/split-types.fun)>

== Details and Notes ==

{empty}
