remove type binding by adding an optional grouping
add test for compiler pass and fix it
prepare matcher