unified type systems