If actions are used repeatedly, it is more efficient to create the action objects once and run them on multiple nodes. To do this in the Haskell binding, use stable names to identify identical actions (actually action trees) and reuse them.
(We need to be careful to free them after a while of not being used, though.)