simple case of adding a lexical complement at a given location on a given bolt works
add function add-complements-to-bolts, but found something interesting:

of these two:

italianverbs.benchmark> (time (fo-ps (take 1 (forest/add-complements-to-bolts (forest/gen1 grammar lexicon {:synsem {:cat :verb :subcat '()}}) [:comp] :top lexicon))))
"Elapsed time: 3651.386 msecs"
"[s-imperfetto Antonio (Antonio) impazziva (was going mad)]"
italianverbs.benchmark> (time (fo-ps (take 1 (forest/add-complements-to-bolts (take 1 (forest/gen1 grammar lexicon {:synsem {:cat :verb :subcat '()}})) [:comp] :top lexicon))))
"Elapsed time: 1017.991 msecs"
"[s-imperfetto Antonio (Antonio) andava (was going)]"
italianverbs.benchmark> 

the latter is much faster..why?