2014-06-17 01:42:39 +00:00
|
|
|
|
|
|
|
namespace foo
|
|
|
|
variable A : Type.{1}
|
|
|
|
variable a : A
|
|
|
|
variable x : A
|
|
|
|
variable c : A
|
|
|
|
end
|
|
|
|
|
|
|
|
section
|
|
|
|
using foo (renaming a->b x->y) (hiding c)
|
|
|
|
check b
|
|
|
|
check y
|
|
|
|
check c -- Error
|
|
|
|
end
|
|
|
|
|
|
|
|
section
|
|
|
|
using foo (a x)
|
|
|
|
check a
|
|
|
|
check x
|
|
|
|
check c -- Error
|
|
|
|
end
|
|
|
|
|
|
|
|
section
|
|
|
|
using foo (a x) (hiding c) -- Error
|
|
|
|
end
|
|
|
|
|
|
|
|
section
|
|
|
|
using foo
|
|
|
|
check a
|
|
|
|
check c
|
|
|
|
check A
|
|
|
|
end
|
|
|
|
|
|
|
|
namespace foo
|
|
|
|
variable f : A → A → A
|
2014-07-01 23:55:41 +00:00
|
|
|
infix `*`:75 := f
|
2014-06-17 01:42:39 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
section
|
|
|
|
using foo
|
|
|
|
check a * c
|
|
|
|
end
|
|
|
|
|
|
|
|
section
|
|
|
|
using [notation] foo -- use only the notation
|
|
|
|
check foo.a * foo.c
|
|
|
|
check a * c -- Error
|
|
|
|
end
|
|
|
|
|
|
|
|
section
|
|
|
|
using [decls] foo -- use only the declarations
|
|
|
|
check f a c
|
|
|
|
check a*c -- Error
|
|
|
|
end
|