(/edit)
((!!edn) .exch .store /p).cvx .def

(/p)
(/lp .print (!!edn) .load .print /rp .print /lp .print (!!edn) .load .load .print /rp .print (
).print).cvx .def

(/r)
((!!edr) .exch .store
 (!!eds) .exch .store
(!!edn) .load .load  (!!eds) .load .search (.exch .pop (!!edr) .load .exch 3concat (!!edn) .load .exch .store)((not found)= .pop ).ifelse .cvx .exec).cvx .def

(3concat)
(3 .copy (!!eds1) .cvlit .exch .store
(!!eds2) .exch .cvlit .store
(!!eds3) .exch .cvlit .store
 .length .exch .length .add .exch .length .add .string 
(!!edn) .load .load .litchk .not (.cvx) .cvx .if (!!edos) .exch .store
(!!edos) .load  0 !!eds1 .putstring !!eds1 .length !!eds2 .putstring !!eds1 .length !!eds2 .length .add !!eds3 .putstring).cvx .def

(/lp)
(()) 0 1 .substring .def

(/rp)
(()) 1 1 .substring .def

(!!edn)().def
(!!edr)().def
(!!eds)().def
(!!eds1)().def
(!!eds2)().def
(!!eds3)().def
(!!edos)().def