Vadv.person.number.formality -> 1: @adv %@vadv {2 _1 1} | 2: %@vadv {have@vbhaver.past.$person.$number.$formality _ 1} ; VPadv -> 2: @prn.$person.$number.$formality Vadv.$person.$number.$formality {if@adv _ 1 _1 2} | 1: @ifword @prn.$person.$number.$formality Vadv.$person.$number.$formality {1 _1 2 _2 3} ; NP -> 1: @n.$person.$number {prpers@det.pos.$person.mf.$number _ 1} ; V.aspect.mood.person.number -> 1: @v.inf %@mark {1(aspect=2.aspect, mood=2.mood, person=2.person)}; ! I skipped number marking for the moment VP.aspect.mood -> 1: NP %V {1 _1 2} | 1: @prn.$person %V.$person {1 _1 2} ; SEN -> 2: VP {1} | 1: VPadv @cm VP {1(aspect=3.aspect, mood=3.mood) _1 2 _2 3}; ! the following was invented on the spot to deal with vadv.perf.irr >> have@vbhaver.past.$person.$number.$formality _ 1 ; vadv.impf >> 1 ;