Why is this using "Carbon.VersionAsInteger( SystemVersionAsString )" while the other one above uses "SystemVersionAsInt"?

Also, why is there a new Carbon.VersionAsInteger when we already had SystemVersionAsInt?