/// <summary>
 /// Modifty Function: remove from set
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="h"></param>
 /// <param name="p"></param>
 /// <returns></returns>
 protected Achievement.IProgress __RemoveAndReturn <T>(Achievement.IProgress h, T p)
 {
     return(h.Remove <T>(p));
 }
 /// <summary>
 /// Modify function: Increment
 /// </summary>
 /// <param name="t"></param>
 /// <returns></returns>
 protected Achievement.IProgress __Increment(Achievement.IProgress t) //dynamic __Increment(dynamic t)
 {
     return(t.Add <Int32>(1));
 }
 /// <summary>
 /// Modify Function: add to set
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="h"></param>
 /// <param name="p"></param>
 /// <returns></returns>
 protected Achievement.IProgress __AddAndReturn <T>(Achievement.IProgress h, T p)
 {
     return(h.Add <T>(p));
 }
        /// <summary>
        /// Check: all peas in arg
        /// </summary>
        /// <param name="arg"></param>
        /// <returns></returns>
        private Boolean __CheckAllPeaIn(Achievement.IProgress arg)
        {
            var dead = (HashSet <DataPea>)arg.Value <HashSet <DataPea> >();

            return(_peas.All(p => dead.Contains(p)));
        }