//cd for generic version include "general.cd"; package gen; TypeInstance = RelationNr. IntermediateProduct = "(assignment:" Assignment ")". RawMaterialInstance = List(Constraint). Constraint = Weight RelationNr List(Variable) *l. Weight = int ":" *s. RelationNr = int *s. Variable = ident *s. Predicate = List(RelationNr). Assignment = "["List(Literal)"]". Literal = *s Sign *s Variable *s. Sign: Neg|Pos. Pos = . //this can be "+" if desired. Neg = "!". //this can be "-" if desired.