/// <summary>
            /// Delegate constraint comparison to the derived type
            /// </summary>
            public bool Check(IConstraintContext context)
            {
                var typedContext = context as TContext;

                return(typedContext != null && CheckConstraint(typedContext));
            }
 /// <summary>
 /// Implementation of a null constraint. Will always be true and will check nothing.
 /// </summary>
 public bool Check(IConstraintContext context)
 {
     return(true);
 }