More specific types in generics.

More replacing 'node' with 'shape' as needed.
First pass at 'pick' support.