1// modules + vector spaces 2 3use crate::core::ops::AbelianGroup; 4use crate::core::ring::{Field, Ring}; 5 6pub trait Module<R: Ring>: AbelianGroup { 7 fn scale(&self, r: &R) -> Self; 8} 9 10pub trait VectorSpace<F: Field>: Module<F> {}