Ticket #12 (new enhancement)
Opened 5 years ago
Declaring non-linearizing categories
| Reported by: | PeterLjunglof | Owned by: | |
|---|---|---|---|
| Priority: | major | Version: | |
| Keywords: | Cc: |
Description
Sometimes one defines categories which are not meant to be linearized, in any language. One example is the categories Tense, Pol and Ant in the resource grammar. Another example is when defining finite dependent types, e.g.:
cat DeviceType; Device DeviceType; fun Switchable, Dimmable : DeviceType;
The device type is only used for restricting some grammar rules (i.e., that a dimmable device can be dimmed).
Anyway, it would be great if I could declare a category to be purely abstract. E.g., by a flag:
flag abstract = DeviceType;
Or by declaring a null lincat:
lincat DeviceType = {};
Then GF could skip warnings about missing lindefs for functions of this type. Also, it could warn if one tries to use the linearization of a variable without a lincat.
Note: This has some similarities with hidden arguments, see ticket:11.
