public static void ThrowIfApplied(this IApplicable applicable) { if (applicable.IsApplied) { throw new InvalidOperationException($"Applicable ({applicable.GetType()}) is applied and readonly for now"); } }