# type-fn type-fn allows you to more simply create logic at the type level. ## Example Unsigned addition, subtraction, and multiplication: ```rs struct Zero; struct Succ(PhantomData); type_fn! { fn Add; fn Sub; fn Mul; } type_fn_impl! { fn Add< => Zero, Rhs> => Rhs; fn Add Succ, Rhs> where Add: + TypeFn, => Succ< as TypeFn>::Ret>; fn Sub Zero> => Lhs; fn Sub Succ, Rhs => Succ> where Sub : + TypeFn, => as TypeFn>::Ret; fn Mul< => Zero, Rhs> => Zero; fn Mul Succ, Rhs> where Mul: + TypeFn, Add as TypeFn>::Ret>: + TypeFn, => as TypeFn>::Ret> as TypeFn>::Ret; } ```