live variable analysis working, adding in type inference