prelude namespace foo
  constant A : Type
  constant a : A
  constant x : A
  constant c : A
end foo

section
  open foo (renaming a->b x->y) (hiding c)
  #check b
  #check y
  #check c -- Error
end

section
  open foo (a x)
  #check a
  #check x
  #check c -- Error
end

section
  open foo (a x) (hiding c) -- Error
end

section
  open foo
  #check a
  #check c
  #check A
end

namespace foo
  constant f : A → A → A
  infix ` * `:75 := f
end foo

section
  open foo
  #check a * c
end
