Ticket #12 (new enhancement)

Opened 7 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.

Note: See TracTickets for help on using tickets.