the "problem" with existing systems is that they do not consider their core language with respect to Type Theory nor Category Theory.
Put simply, when I have two type definitions A and B, I would like to be able to construct two new types, (A * B) and (A + B), their product or co-product. You can do this more-or-less in every system, but in typedefs we actually makes sure it is not more-or-less but exactly a product.
This simplifies reasoning about them and embedding the typedefs type theory into something more powerful such as statebox.org
So typedefs provides an implementation of a simple (from the categorical point of view) type system consisting of roughly +, * and recursion \mu.
Statebox adds arrows to this so "A -> B", so things like functions etc. (Really morphisms in monoidal categories, so generalizing funtions and allowing you to work graphically)
Hope this clarifies a bit