public static TResult Match <TResult>(this PurityAnalyzer.InstanceStaticCombination instance, System.Func <PurityAnalyzer.InstanceStaticCombination.InstanceAndStatic, TResult> instanceAndStaticCase, System.Func <PurityAnalyzer.InstanceStaticCombination.Instance, TResult> instanceCase, System.Func <PurityAnalyzer.InstanceStaticCombination.Static, TResult> staticCase)
 {
     if (instance is PurityAnalyzer.InstanceStaticCombination.InstanceAndStatic instanceAndStatic)
     {
         return(instanceAndStaticCase(instanceAndStatic));
     }
     if (instance is PurityAnalyzer.InstanceStaticCombination.Instance instance1)
     {
         return(instanceCase(instance1));
     }
     if (instance is PurityAnalyzer.InstanceStaticCombination.Static static1)
     {
         return(staticCase(static1));
     }
     throw new System.Exception("Invalid InstanceStaticCombination type");
 }
        public static void Match(this PurityAnalyzer.InstanceStaticCombination instance, System.Action <PurityAnalyzer.InstanceStaticCombination.InstanceAndStatic> instanceAndStaticCase, System.Action <PurityAnalyzer.InstanceStaticCombination.Instance> instanceCase, System.Action <PurityAnalyzer.InstanceStaticCombination.Static> staticCase)
        {
            if (instance is PurityAnalyzer.InstanceStaticCombination.InstanceAndStatic instanceAndStatic)
            {
                instanceAndStaticCase(instanceAndStatic);
                return;
            }

            if (instance is PurityAnalyzer.InstanceStaticCombination.Instance instance1)
            {
                instanceCase(instance1);
                return;
            }

            if (instance is PurityAnalyzer.InstanceStaticCombination.Static static1)
            {
                staticCase(static1);
                return;
            }

            throw new System.Exception("Invalid InstanceStaticCombination type");
        }