number traits
```rust extern crate number_traits;
use number_traits::{Num, Sqrt};
fn add(a: T, b: T) -> T where T: Num, { a + b }
fn sqrt(x: T) -> T where T: Sqrt, { x.sqrt() }
fn main() { asserteq!(add(2, 2), 4); asserteq!(sqrt(4), 2); } ```