Struct type_level_logic::types::balanced::Minus []

pub struct Minus<X: Int = Term>(_);

Trait Implementations

impl<X: Default + Int> Default for Minus<X>
[src]

Returns the "default value" for a type. Read more

impl<X: Int> Int for Minus<X>

impl<N: Int> IntSucc for Minus<N> where
    Zero<N>: Unique

impl<N: Int> IntPred for Minus<N> where
    N: IntPred

impl<N: Int> IntTriple for Minus<N>

impl<N: Int> Unique for Minus<N>

impl<N: Int> IntNeg for Minus<N> where
    N: IntNeg

impl<N: Int> IntAdd<Term> for Minus<N>

impl<N: Int> IntAdd<Undefined> for Minus<N>

impl<M: Int, N: Int> IntAdd<Zero<N>> for Minus<M> where
    M: IntAdd<N>, 

impl<M: Int, N: Int> IntAdd<Plus<N>> for Minus<M> where
    Zero<<M as IntAdd<N>>::Output>: Unique,
    M: IntAdd<N>, 

impl<M: Int, N: Int> IntAdd<Minus<N>> for Minus<M> where
    <M as IntAdd<N>>::Output: IntAdd<Minus>,
    M: IntAdd<N>, 

impl<N: Int> IntSub<Term> for Minus<N>

impl<N: Int> IntSub<Undefined> for Minus<N>

impl<M: Int, N: Int> IntSub<Zero<N>> for Minus<M> where
    M: IntSub<N>, 

impl<M: Int, N: Int> IntSub<Plus<N>> for Minus<M> where
    <M as IntSub<N>>::Output: IntSub<Plus>,
    M: IntSub<N>, 

impl<M: Int, N: Int> IntSub<Minus<N>> for Minus<M> where
    Zero<<M as IntSub<N>>::Output>: Unique,
    M: IntSub<N>, 

impl<N: Int> IntMul<Term> for Minus<N>

impl<N: Int> IntMul<Undefined> for Minus<N>

impl<M: Int, N: Int> IntMul<Zero<N>> for Minus<M> where
    <M as IntMul<Zero<Zero<N>>>>::Output: IntSub<Zero<N>>,
    M: IntMul<Zero<Zero<N>>>, 

impl<M: Int, N: Int> IntMul<Plus<N>> for Minus<M> where
    <M as IntMul<Zero<Plus<N>>>>::Output: IntSub<Plus<N>>,
    M: IntMul<Zero<Plus<N>>>, 

impl<M: Int, N: Int> IntMul<Minus<N>> for Minus<M> where
    <M as IntMul<Zero<Minus<N>>>>::Output: IntSub<Minus<N>>,
    M: IntMul<Zero<Minus<N>>>, 

impl<N: Int, L: Int, E: Int, G: Int> IntCmp<Term, L, E, G> for Minus<N> where
    N: IntCmp<Term, L, L, G>, 

impl<M: Int, N: Int, L: Int, E: Int, G: Int> IntCmp<Zero<N>, L, E, G> for Minus<M> where
    M: IntCmp<N, L, L, G>, 

impl<M: Int, N: Int, L: Int, E: Int, G: Int> IntCmp<Plus<N>, L, E, G> for Minus<M> where
    M: IntCmp<N, L, L, G>, 

impl<M: Int, N: Int, L: Int, E: Int, G: Int> IntCmp<Minus<N>, L, E, G> for Minus<M> where
    M: IntCmp<N, L, E, G>, 

impl<N: Int, L: IntPair, E: IntPair, G: IntPair> IntCmp2<Term, L, E, G> for Minus<N> where
    N: IntCmp2<Term, L, L, G>, 

impl<M: Int, N: Int, L: IntPair, E: IntPair, G: IntPair> IntCmp2<Zero<N>, L, E, G> for Minus<M> where
    M: IntCmp2<N, L, L, G>, 

impl<M: Int, N: Int, L: IntPair, E: IntPair, G: IntPair> IntCmp2<Plus<N>, L, E, G> for Minus<M> where
    M: IntCmp2<N, L, L, G>, 

impl<M: Int, N: Int, L: IntPair, E: IntPair, G: IntPair> IntCmp2<Minus<N>, L, E, G> for Minus<M> where
    M: IntCmp2<N, L, E, G>, 

impl<X: Int> IntAbs for Minus<X> where
    Term: IntLteCmp<Minus<X>, Minus<X>, <Minus<X> as IntNeg>::Output>,
    Minus<X>: IntNeg

impl<M: Int, N: Int> IntRevInternal<N> for Minus<M> where
    M: IntRevInternal<Minus<N>>, 

impl<N: Int, D: Int> IntDiv<Zero<D>> for Minus<N> where
    <<Minus<N> as IntRev>::Output as IntDivInternal<Zero<D>, Int2<Term, Term>>>::Output: Int2P2,
    <Minus<N> as IntRev>::Output: IntDivInternal<Zero<D>, Int2<Term, Term>>,
    Minus<N>: IntRev

impl<N: Int, D: Int> IntDiv<Plus<D>> for Minus<N> where
    <<Minus<N> as IntRev>::Output as IntDivInternal<Plus<D>, Int2<Term, Term>>>::Output: Int2P2,
    <Minus<N> as IntRev>::Output: IntDivInternal<Plus<D>, Int2<Term, Term>>,
    Minus<N>: IntRev

impl<N: Int, D: Int> IntDiv<Minus<D>> for Minus<N> where
    <<Minus<N> as IntRev>::Output as IntDivInternal<Minus<D>, Int2<Term, Term>>>::Output: Int2P2,
    <Minus<N> as IntRev>::Output: IntDivInternal<Minus<D>, Int2<Term, Term>>,
    Minus<N>: IntRev

impl<N: Int, D: Int> IntRem<Zero<D>> for Minus<N> where
    <<Minus<N> as IntRev>::Output as IntDivInternal<Zero<D>, Int2<Term, Term>>>::Output: Int2P1,
    <Minus<N> as IntRev>::Output: IntDivInternal<Zero<D>, Int2<Term, Term>>,
    Minus<N>: IntRev

impl<N: Int, D: Int> IntRem<Plus<D>> for Minus<N> where
    <<Minus<N> as IntRev>::Output as IntDivInternal<Plus<D>, Int2<Term, Term>>>::Output: Int2P1,
    <Minus<N> as IntRev>::Output: IntDivInternal<Plus<D>, Int2<Term, Term>>,
    Minus<N>: IntRev

impl<N: Int, D: Int> IntRem<Minus<D>> for Minus<N> where
    <<Minus<N> as IntRev>::Output as IntDivInternal<Minus<D>, Int2<Term, Term>>>::Output: Int2P1,
    <Minus<N> as IntRev>::Output: IntDivInternal<Minus<D>, Int2<Term, Term>>,
    Minus<N>: IntRev

impl<N: Int, D: Int, R: Int, Q: Int> IntDivInternal<D, Int2<R, Q>> for Minus<N> where
    N: IntDivInternal<D, <Minus<R> as IntAbsMinThreeCmp<<Minus<R> as IntSub<D>>::Output, <Minus<R> as IntAdd<D>>::Output, <Q as IntTriple>::Output, Plus<Q>, Minus<Q>>>::Output>,
    Minus<R>: IntAbsMinThreeCmp<<Minus<R> as IntSub<D>>::Output, <Minus<R> as IntAdd<D>>::Output, <Q as IntTriple>::Output, Plus<Q>, Minus<Q>>,
    Minus<R>: IntSub<D>,
    Minus<R>: IntAdd<D>,
    Q: IntTriple