public void AddToDomain(Model m) { Expression headExpression = headPattern.ToExpression(); if (headExpression != null) { headExpression.AddToDomain(m); } for (int i = 0; i < argPatterns.Length; i++) { IPattern argPattern = argPatterns[i]; if (argPattern != null) { argPattern.AddToDomain(m); } } }