Less redundancy in type declarations and signatures