mod coeff_expr;
#[cfg(feature = "backend_cas")]
mod cas_rs_field;
#[cfg(feature = "backend_cas")]
pub type ActiveField = cas_rs_field::CasRsField;
#[cfg(feature = "backend_egg")]
mod egg_field;
#[cfg(feature = "backend_egg")]
pub type ActiveField = egg_field::EggField;
use abstalg::{AbelianGroup, CommuntativeMonoid, Domain, Monoid, SemiRing, Semigroup, UnitaryRing};
pub trait CoefficientField:
Domain
+ CommuntativeMonoid
+ AbelianGroup
+ Semigroup
+ Monoid
+ SemiRing
+ UnitaryRing
+ Clone
+ std::fmt::Debug
{
fn embed_expr(&self, expr: syn::Expr) -> syn::Result<<Self as Domain>::Elem>;
fn to_expr(&self, elem: &<Self as Domain>::Elem) -> syn::Result<syn::Expr>;
}