public void Ensure(SemanticCheckResult semanticCheckResult)
 {
     if (!semanticCheckResult.Correct)
     {
         Errors.AddRange(semanticCheckResult.Errors);
     }
 }
 public void Ensure(SemanticCheckResult semanticCheckResult, bool condition, Lazy <Error> error)
 {
     if (!semanticCheckResult.Correct)
     {
         Errors.AddRange(semanticCheckResult.Errors);
     }
     else if (!condition)
     {
         Errors.Add(error.Value);
     }
 }