id	summary	reporter	owner	description	type	status	priority	version	resolution	keywords	cc
12	Declaring non-linearizing categories	PeterLjunglof		"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.

"	enhancement	new	major				
