public Member CreatePrivateMember(
                    IStaticScope scope,
                    IHavePrivateMembers havePrivateMembers,
                    IKey key)
                {
                    var res = new Member(this, key.ToString() !);

                    HasPrivateMember(havePrivateMembers, key, res);
                    res.Context = Possibly.Is(scope);
                    return(res);
                }
                public Member CreatePrivateMember(
                    IHavePrivateMembers scope,
                    IKey key,
                    IOrType <MethodType, Type, Object, OrType, InferredType, GenericTypeParameter, IError> type)
                {
                    var res = new Member(this, key.ToString() !);

                    HasPrivateMember(scope, key, res);
                    res.LooksUp = Possibly.Is(type);
                    return(res);
                }
                public Member CreatePrivateMember(
                    IStaticScope scope,
                    IHavePrivateMembers havePrivateMembers,
                    IKey key,
                    IOrType <IKey, IError> typeKey)
                {
                    var res = new Member(this, key.ToString() !);

                    HasPrivateMember(havePrivateMembers, key, res);
                    res.Context = Possibly.Is(scope);
                    res.TypeKey = typeKey.SwitchReturns(x => Prototypist.Toolbox.OrType.Make <IKey, IError, Unset>(x), x => Prototypist.Toolbox.OrType.Make <IKey, IError, Unset>(x));
                    return(res);
                }
 public static void HasPrivateMember(IHavePrivateMembers parent, IKey key, Member member)
 {
     parent.PrivateMembers.Add(key, member);
 }