we should standardize how we write builtins by using some trait that looks like this or something: ```rust trait Builtin { const sig: &'static str; const no_typecheck: bool; fn typecheck( generics: &GenericParameters, vars: &[VarInfo<F, LinearCombination<F>>], span: Span, ) -> Result<()>; fn builtin( compiler: &mut CircuitWriter<R1CS<F>>, _generics: &GenericParameters, vars: &[VarInfo<F, LinearCombination<F>>], span: Span, ) -> Result<Option<Var<F, LinearCombination<F>>>>; } ``` and the `typecheck()` function could contain all of the actual checks that need to be done.
we should standardize how we write builtins by using some trait that looks like this or something:
and the
typecheck()function could contain all of the actual checks that need to be done.