public IEnumerator <KVP> GetEnumerator()
 {
     if (HasValue)
     {
         yield return(new KVP(Prefix, Value));
     }
     if (False != null)
     {
         foreach (var item in False())
         {
             yield return(new KVP(Prefix.Append(false).Concat(item.Key), item.Value));
         }
     }
     if (True != null)
     {
         foreach (var item in True())
         {
             yield return(new KVP(Prefix.Append(true).Concat(item.Key), item.Value));
         }
     }
 }