@Chris: An in-practice example of the duplication you're talking about can actually be found in the visitor pattern in the Dart compiler (first 80 lines):

http://code.google.com/p/dart/source/browse/trunk/dart/lib/compiler/implementation/tree/nodes.dart

Of course, because it's a dynamic language with optional typing you don't have to mention the type 2 times.