SuReal(surface realization) initial version

This is the a preliminary version of Surface-realizaion(SuReal). The main function is sureal which takes in a SetLink of relex-to-logic output to parrot/echo back the sentence.  Use (r2l "some sentence") rather than (reles-parse "some sentence") to get the SetLinks for testing purposes.
Yes, something like that should work. Just be sure to call f and g and h and i, so that they run, and the atoms get created. The above also gives you control as to when to call f g h i ... so if you want to do something else first, or do some other pre/post-processing. 

However, you may want something slightly fancier, since if the first sentence does (define relex-parse (list f g)) and the second sentence does (define relex-parse (list p q))  then the second sentence will clobber the  first.  I'm not sure how you want to solve this, because I can't tell what you're doing .  Maybe this would work:

Before starting (define relex-parse (list))  i.e. the empty list.   Then, for each new sentence:  (set! relex-parse (concat (list f g) relex-parse))   and (set! relex-parse (concat (list p q) relex-parse))  and so on.