support nested `expose` declarations

ref #34