keyword coerce
improved examples
add cross-product protocol
Add cross product default implementation
Cross product tests