Mrproper/typedep reorder

add an type assert to ensure the param is a subscript?