Hello Christina,
No, this is not a beginner's mistake but rather a bad feature (a.k.a. a bug) in GF :-)
A typical application grammar looks as follows:
--# -path=.:alltenses
concrete AppChi of App = open SyntaxChi in ....
or as follows:
--# -path=.:present
concrete AppFre of App = open SyntaxFre in ...
If the abstract syntax App is the same in both of them, you ought to be able to compile with
gf -make AppChi.gf AppFre.gf
However, this may cause a linking error, because there can be a module such as TenseX, which has different versions in present/ and alltenses/, but only one of these is accessed by the linker. The remedy is to build the two pgf's separately and combine them afterwards:
gf -make -name=AppChi AppChi.gf
gf -make -name=AppFre AppFre.gf
gf -make AppChi.pgf AppFre.pgf
The problematic feature of GF is that modules are identified by their plain module names, with no reference to directories. Thus the library modules present/TenseX and alltenses/TenseX are really two different modules, but they cannot be distinguished since they have the same base name.
What adds to the risk of confusion is that we have the present/ and alltenses/ versions of the RGL. This is for practical reasons, which we have wanted to eliminate, but haven't succeeded yet. Thus Fre is often too heavy to be used in its alltenses/ version, in the intermediate stages of compilation. On the other hand, Chi is no problem, and it does not even have a present/ version, because the omitted functions are not marked in its RGL source.
We have two long-term goals related to these problems:
1. Eliminate the need of present/ libraries. This was prepared in the latest version of GF, where alltenses is automatically included as the last item of a path, and thus need not even be indicated by the user. But it is overridden if present is explicitly included in the path.
2. Introduce hierarchical module names. This would be a reform similar to what Haskell did a few years ago. But this will be a big task, with some open design questions, and has never had the highest priority so far.
With best regards
Aarne.