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
|
|
|
|
2014-08-23 22:44:28 +00:00
|
|
|
context
|
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
|
|
|
|
|
2014-08-23 22:44:28 +00:00
|
|
|
context
|
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
|
|
|
|
|
2014-08-23 22:44:28 +00:00
|
|
|
context
|
2014-09-03 23:00:38 +00:00
|
|
|
open foo (a x) (hiding c) -- Error
|
2014-06-17 01:42:39 +00:00
|
|
|
end
|
|
|
|
|
2014-08-23 22:44:28 +00:00
|
|
|
context
|
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
|
2014-07-01 23:55:41 +00:00
|
|
|
infix `*`:75 := f
|
2014-08-07 23:59:08 +00:00
|
|
|
end foo
|
2014-06-17 01:42:39 +00:00
|
|
|
|
2014-08-23 22:44:28 +00:00
|
|
|
context
|
2014-09-03 23:00:38 +00:00
|
|
|
open foo
|
2014-06-17 01:42:39 +00:00
|
|
|
check a * c
|
|
|
|
end
|
|
|
|
|
2014-08-23 22:44:28 +00:00
|
|
|
context
|
2014-12-18 02:28:38 +00:00
|
|
|
open [notations] foo -- use only the notation
|
2014-06-17 01:42:39 +00:00
|
|
|
check foo.a * foo.c
|
|
|
|
check a * c -- Error
|
|
|
|
end
|
|
|
|
|
2014-08-23 22:44:28 +00:00
|
|
|
context
|
2014-09-03 23:00:38 +00:00
|
|
|
open [decls] foo -- use only the declarations
|
2014-06-17 01:42:39 +00:00
|
|
|
check f a c
|
|
|
|
check a*c -- Error
|
|
|
|
end
|