feat-struc :< *top*. syn-struc := feat-struc & [ HEAD pos, SPR *list*, COMPS *list* ]. agr-cat := feat-struc & [ PER per, NUM num, GEND gend ]. pos := feat-struc. nominal := pos & [ AGR agr-cat ]. noun :< nominal. det :< nominal. verb :< pos. *value* :< *top*. per :< *value*. 1st :< per. 2nd :< per. 3rd :< per. num :< *value*. sing :< num. plur :< num. gend :< *value*. fem :< gend. masc :< gend. phrase := syn-struc & [ ARGS *list* ]. word := syn-struc & [ ORTH string ]. root := phrase & [ HEAD verb, SPR < >, COMPS < > ]. ;;;;;;;;;;;;;;;;;;;;;;; string := *top*. *list* := *top*. *ne-list* := *list* & [ FIRST *top*, REST *list* ]. *null* := *list*.