Files
mercury/tests/submodules/deeply_nested.m
2021-07-25 14:40:53 +10:00

60 lines
1.6 KiB
Mathematica

%---------------------------------------------------------------------------%
% vim: ts=4 sw=4 et ft=mercury
%---------------------------------------------------------------------------%
:- module deeply_nested.
:- interface.
:- import_module io.
:- module a.
:- interface.
:- type a ---> a.
:- module b.
:- interface.
:- type b ---> b.
:- module c.
:- interface.
:- type c ---> c.
:- module d.
:- interface.
:- type d ---> d.
:- module e.
:- interface.
:- type f ---> f.
:- end_module e.
:- end_module d.
:- end_module c.
:- end_module b.
:- end_module a.
:- pred main(io::di, io::uo) is det.
:- implementation.
:- import_module deeply_nested.a.
:- import_module deeply_nested.a.b.
:- use_module deeply_nested.a.b.c.
:- import_module deeply_nested.a.b.c.d.
:- use_module deeply_nested.a.b.c.d.e.
:- type t0 == deeply_nested.a.b.c.d.e.f.
% These were allowed until 2016 january.
% :- type t1 == a.b.c.d.e.f.
% :- type t2 == b.c.d.e.f.
% :- type t3 == c.d.e.f.
% % :- type t4 == d.e.f. % error, "d" must be referred to as "c.d"
% :- type t5 == e.f.
% % :- type t6 == f. % error, "f" must be referred to as "e.f"
main -->
print(deeply_nested.a.b.c.d.e.f), nl,
print(a.b.c.d.e.f), nl,
print(b.c.d.e.f), nl,
print(c.d.e.f), nl,
% print(d.e.f), nl, % error, "d" must be referred to as "c.d"
print(e.f), nl,
% print(f), nl, % error, "f" must be referred to as "e.f"
[].
:- end_module deeply_nested.