public ParameterisedDiscriminatedUnionCase(
     string caseName,
     string typeName,
     params string[] parameterTypes) : base(caseName, typeName)
 {
     Parameters = new AnonymousDiscriminatedUnionCaseParameterCollection(caseName, parameterTypes);
     DestructureMethods = new DestructureMethodCollection(Parameters);
 }
        public ParameterisedDiscriminatedUnionCase(
            string caseName,
            string typeName,
            params Tuple<string, string>[] parameters) : base(caseName, typeName)
        {
            Parameters = new NamedDiscriminatedUnionCaseArgumentCollection(caseName, parameters);

            DestructureMethods = new DestructureMethodCollection(Parameters);
        }