semantic: Make TypeInfo.type a user side exposed enum.