2014-12-01 05:16:01 +00:00
|
|
|
prelude namespace foo
|
2014-10-02 23:20:52 +00:00
|
|
|
constant A : Type.{1}
|
|
|
|
constant a : A
|
|
|
|
constant x : A
|
|
|
|
constant c : A
|
2014-08-07 23:59:08 +00:00
|
|
|
end foo
|
2014-06-17 01:42:39 +00:00
|
|
|
|
2015-04-22 02:33:21 +00:00
|
|
|
section
|
2014-09-03 23:00:38 +00:00
|
|
|
open foo (renaming a->b x->y) (hiding c)
|
2014-06-17 01:42:39 +00:00
|
|
|
check b
|
|
|
|
check y
|
|
|
|
check c -- Error
|
|
|
|
end
|
|
|
|
|
2015-04-22 02:33:21 +00:00
|
|
|
section
|
2014-09-03 23:00:38 +00:00
|
|
|
open foo (a x)
|
2014-06-17 01:42:39 +00:00
|
|
|
check a
|
|
|
|
check x
|
|
|
|
check c -- Error
|
|
|
|
end
|
|
|
|
|
2015-04-22 02:33:21 +00:00
|
|
|
section
|
2014-09-03 23:00:38 +00:00
|
|
|
open foo (a x) (hiding c) -- Error
|
2014-06-17 01:42:39 +00:00
|
|
|
end
|
|
|
|
|
2015-04-22 02:33:21 +00:00
|
|
|
section
|
2014-09-03 23:00:38 +00:00
|
|
|
open foo
|
2014-06-17 01:42:39 +00:00
|
|
|
check a
|
|
|
|
check c
|
|
|
|
check A
|
|
|
|
end
|
|
|
|
|
|
|
|
namespace foo
|
2014-10-02 23:20:52 +00:00
|
|
|
constant f : A → A → A
|
2015-09-30 23:52:56 +00:00
|
|
|
infix ` * `:75 := f
|
2014-08-07 23:59:08 +00:00
|
|
|
end foo
|
2014-06-17 01:42:39 +00:00
|
|
|
|
2015-04-22 02:33:21 +00:00
|
|
|
section
|
2014-09-03 23:00:38 +00:00
|
|
|
open foo
|
2014-06-17 01:42:39 +00:00
|
|
|
check a * c
|
|
|
|
end
|
|
|
|
|
2015-04-22 02:33:21 +00:00
|
|
|
section
|
2015-12-28 18:30:23 +00:00
|
|
|
open [notation] foo -- use only the notation
|
2014-06-17 01:42:39 +00:00
|
|
|
check foo.a * foo.c
|
|
|
|
check a * c -- Error
|
|
|
|
end
|
|
|
|
|
2015-04-22 02:33:21 +00:00
|
|
|
section
|
2015-12-28 18:30:23 +00:00
|
|
|
open [decl] foo -- use only the declarations
|
2014-06-17 01:42:39 +00:00
|
|
|
check f a c
|
|
|
|
check a*c -- Error
|
|
|
|
end
|