refactor Typeinfer's join and InsertCoerceNode(WIP)