pub trait Module {
// Required method
fn forward(&self, input: &Tensor) -> Tensor;
// Provided methods
fn gather_parameters(&self, params: &mut HashMap<usize, Tensor>) { ... }
fn parameters(&self) -> HashMap<usize, Tensor> { ... }
fn update(&self, params: &mut HashMap<usize, Tensor>) { ... }
}