block scan recursive type