pub trait DynArgument<F: PrimeField> {
    // Required methods
    fn constraints(&self, cache: &mut Cache) -> Vec<E<F>> ⓘ;
    fn combined_constraints(
        &self,
        alphas: &Alphas<F>,
        cache: &mut Cache,
    ) -> E<F>;
    fn argument_type(&self) -> ArgumentType;
}