namespace foo
private structure point :=
(x : nat) (y : nat)

definition bla := point
definition mk : bla := point.mk 10 10
check bla
check point
check point.mk
check point.rec
check point.rec_on
check point.cases_on
check point.induction_on
check point.x
check point.y

end foo

open foo

-- point is not visible anymore

check bla
check point
check point.mk
check point.rec
check point.rec_on
check point.cases_on
check point.induction_on
check point.no_confusion
check point.x
check point.y

set_option pp.all true
print bla

check (⟨1, 2⟩ : bla)
check mk
