I've heard how there are strategies in Haskell for tree implementation, but I haven't found any information about a good behavior tree alternative.
My goal: Given a tuple representing a state, what's the best pattern for feeding that tuble to a tree of behavior nodes that each return busy/error/completed/running based on the tuple. The behavior may also change the tuple (causing a state change).
Nested nodes can be executed based on the strategy of their parent node. For example, if a child node returns 'error', no more child nodes will be evaluated. Another strategy is to execute all child nodes even if an error state is returned.
I hope this makes sense!
We're all a bit confused by your question, and I may not understand what you mean when you say "tuple", but shot in the dark:
I wrote a small library called simple-actors that is meant for Actor Model concurrency. If you can imagine what you need being accomplished by "actors" listening on concurrent "channels" and communicating to each other, then you might be interested in taking a look.
At the top of the docs here is an example of a sort of binary search tree of actors (your question brought that to mind, sorry if this is all off the mark).
Edit: I should mention I found the wikipedia page on Behavior Trees completely inscrutable; perhaps someone familiar with the enterprisey jargon can help.