public PropertyEnvironment Enter(TypeEnvironment typeEnv) { var propDef = typeEnv.Type.ResolveProperty(this); if (propDef == null) { throw new InvalidOperationException("unable to reslove property"); } return(typeEnv.AddProperty(propDef)); }