public HasSingleParameterConstructor(ArraySelector <ConstructorInfo, ParameterInfo> parameters) : base(parameters.FirstAssigned() .Select(Start.An.Instance(ParameterType.Default) .Then() .Metadata() .Select(Is.AssignableFrom <T>().Get()) .EnsureAssignedOrDefault()) .Then() .And(parameters.Subject.Select(RemainingParametersAreOptional.Default))) { }