Types are useful in proportion to the number of primitives that can handle them.
That's basically why I built defgeneric; at this point functions len, iso, keep, some, rem, all are all generics, which means they can be extended for new types. (http://github.com/akkartik/arc)
In wart the type system's baked in pretty early on, and I try to use it everywhere I possibly can. (http://github.com/akkartik/wart)