Store element types in a more abstract form
Use itertools.chain rather than list concatentation
Read key family ahead of time
Use lazy maps instead of eager maps
Parameterise test over unused lazy parameter
Partial implementation using streaming
Extending lazy support
Finish off lazy support
Fix Python 3 support