Pattern transform

a long time we speak about it.... Here it is.
why not ``type(node) is type(pattern)`` ?