/// <summary>
        /// Applies the predicate to the <paramref name="value"/>.
        /// </summary>
        /// <param name="value">The value.</param>
        /// <returns>The result of the applied predicate.</returns>
        private bool ApplyPredicate(T value)
        {
            Func <T, bool> predicate = _predicateContainer.Get();

            return(predicate(value));
        }
        /// <summary>
        /// Applies the pattern predicate to the <paramref name="pair"/>.
        /// </summary>
        /// <param name="pair">The pair.</param>
        /// <returns>The result of the predicate.</returns>
        public bool ApplyPredicate(Pair <T> pair)
        {
            Func <Pair <T>, bool> predicate = _predicateContainer.Get();

            return(predicate(pair));
        }