tcrts 0.1.0

Turing complete rust type system
Documentation
#[macro_export]
macro_rules! eq {
    [ $a:ty, $b:ty ] => {
        <$a as tcrts::cmp::PeanoEq<$b>>::Output
    };
}

#[macro_export]
macro_rules! neq {
    [ $a:ty, $b:ty ] => {
        <<$a as tcrts::cmp::PeanoEq<$b>>::Output as tcrts::binaryop::Not>::Output
    };
}

#[macro_export]
macro_rules! lt {
    [ $a:ty, $b:ty ] => {
        <$a as tcrts::cmp::PeanoLt<$b>>::Output
    };
}

#[macro_export]
macro_rules! leq {
    [ $a:ty, $b:ty ] => {
        <$a as tcrts::cmp::PeanoLEq<$b>>::Output
    };
}

#[macro_export]
macro_rules! gt {
    [ $a:ty, $b:ty ] => {
        <$a as tcrts::cmp::PeanoGt<$b>>::Output
    };
}

#[macro_export]
macro_rules! geq {
    [ $a:ty, $b:ty ] => {
        <$a as tcrts::cmp::PeanoGEq<$b>>::Output
    };
}

#[macro_export]
macro_rules! add {
    [ $a:ty, $b:ty ] => {
        <$a as tcrts::arithmetic::PeanoAdd<$b>>::Output
    };
}

#[macro_export]
macro_rules! subtract {
    [ $a:ty, $b:ty ] => {
        <$a as tcrts::arithmetic::PeanoSub<$b>>::Output
    };
}

#[macro_export]
macro_rules! mul {
    [ $a:ty, $b:ty ] => {
        <$a as tcrts::arithmetic::PeanoMul<$b>>::Output
    };
}

#[macro_export]
macro_rules! index {
    [ $list:ty, $index:ty ] => {
        <$list as tcrts::list::GetIndex<$index>>::Output
    };
}

#[macro_export]
macro_rules! replace {
    [ $list:ty, $index:ty, $value:ty ] => {
        <$list as tcrts::list::Replace<$index, $value>>::Output
    };
}

#[macro_export]
macro_rules! condition {
    [ $condition:ty => $truety:ty | $falsety:ty ] => {
        <$condition as $crate::conditional::Conditional<$truety, $falsety>>::Output
    };
}