
Shannon -jj Behrens wrote:
o How important is it that I switch from using the State monad to using arrows?
Your problem seems to be naturally soved by the State monad, therefore you should use that.
o How important is it that I switch from using |> or $ to using arrows?
Unimportant. However, I'd recommend switching from application ($,|>) to composition (.,>>>) where possible. It's "more functional" and often easier to read.
o How much will this increase the "conceptual complexity" of my program
Not at all. You might define >>> locally as f >>> g = \x -> g (f x) or just pretend that this definition is contained in Control.Arrow due to a historical accident, thereby completely ignoring the existence of other arrows. Udo. -- Wo die Macht geistlos ist, ist der Geist machtlos. (aus einem Gipfelbuch)