public override SucoExpression Optimize(SucoEnvironment env, int?[] givens)
        {
            var conditionOpt = Condition.Optimize(env, givens);

            if (conditionOpt is SucoConstant c)
            {
                return(c.Equals(true) ? True.Optimize(env, givens) : False.Optimize(env, givens));
            }
            return(new SucoConditionalExpression(StartIndex, EndIndex, conditionOpt, True.Optimize(env, givens), False.Optimize(env, givens), Type));
        }