block scan recursive type
k