use std::fmt::Display;
use std::ops::Add;
use std::ops::AddAssign;
use std::ops::Div;
use std::ops::DivAssign;
use std::ops::Mul;
use std::ops::MulAssign;
use std::ops::Rem;
use std::ops::Sub;
use std::ops::SubAssign;
use super::Half;
use super::NumTrampolene;
use ::num_traits::identities::{One, Zero};
pub trait Num:
Add<Self, Output = Self>
+ AddAssign
+ Sub<Self, Output = Self>
+ SubAssign
+ Mul<Self, Output = Self>
+ MulAssign
+ Div<Self, Output = Self>
+ DivAssign
+ Rem<Self, Output = Self>
+ PartialOrd
+ Display
+ Copy
+ PartialEq
+ NumTrampolene
+ Half
+ Zero
+ One
+ Sized
{
}
impl<U> Num for U where
U: Add<Self, Output = Self>
+ AddAssign
+ Sub<Self, Output = Self>
+ SubAssign
+ Mul<Self, Output = Self>
+ MulAssign
+ Div<Self, Output = Self>
+ DivAssign
+ Rem<Self, Output = Self>
+ PartialOrd
+ Display
+ Copy
+ PartialEq
+ NumTrampolene
+ Half
+ Zero
+ One
+ Sized
{
}