Refactored for a common change, but nonsense with x in X.
Should understand dependent PolyPatterns
Correction: variables of type W, not X
Still needed: change should be for all type patterns: should make it a trait,
with parametrized methods.
TypPtns corrected - now a wrapping trait with PtnType as an inner type.
PolyPatterns have a separate PolyPtn type.