tcrts 0.1.0

Turing complete rust type system
Documentation
use super::*;

pub trait Map<F> {
    type Output;
}

impl<N: Num, F: TypeFn<N>> Map<F> for N {
    type Output = <F as TypeFn<N>>::Output;
}

impl<F> Map<F> for Nil {
    type Output = Nil;
}

impl<H, T, F> Map<F> for Cons<H, T>
where
    F: TypeFn<H>,
    T: Map<F>,
{
    type Output = Cons<<F as TypeFn<H>>::Output, <T as Map<F>>::Output>;
}