Hello, I have the following overloaded procedure as follows:
    
    
    proc add*(circuit: var Circuit, a, b: Constraint): Constraint {.inline.} =
        let expressions = @[
            Expression(wire: a.outputWire, coefficient: i256(1)),
            Expression(wire: b.outputWire, coefficient: i256(1))
        ]
        circuit.newConstraint(expressions)
    
    proc add*(circuit: var Circuit, constraint: Constraint, constant: 
Constant): Constraint =
        let expressions = @[
            Expression(wire: constraint.outputWire, coefficient: i256(1)),
            Expression(wire: Table(circuit)[int64(0)].outputWire, coefficient: 
i256(constant))
        ]
        circuit.newConstraint(expressions)
    
    proc add*(circuit: var Circuit, constant: Constant, constraint: 
Constraint): Constraint =
        circuit.add(constraint, constant)
    
    proc add*(circuit: Circuit, a, b: Constraint | Constant, args: 
varargs[Constraint | Constant]): Constraint =
        result = circuit.add(a, b)
        for i in 0..args.len:
            result = circuit.add(result, args[i])
    
    
    Run

Calling add with 2 arguments, works as intended.

However when I call add with 3 or more arguments, I get `Error: cannot 
instantiate: 'b:type'` in the proc that accepts varargs[], referring to the 
procs parameters, it's unclear to me as why.

What am I doing wrong?

Reply via email to