
Hey, I need (in netwire) a way to handle a dynamic set of objects. Therefor I need a way of growing and shrinking the set. Since I have little experience with Haskell and FRP, I would appreciate some input. Shrinking is not problem, as I can just remove wires that inhibit. But how to let the set grow? So far, my main loop would look like this: I have input data data Input = UpdatePhysic | KeyDown Int ... and the main Wire which creates objects on certain inputs and updates the physics when UpdatePhysics is send: mainWire :: WireP Input mainWire = proc input -> do userControlledObject <- userControlledObjectWire -< input if input == UpdatePhysics then do rec letCollData = ... physicsObjects <- physicsObjectsWire -< collData else empty -< My idea for the dynamics set wire is this: data Subwire e m a b = forall a'. Subwire (a -> a') (Wire e m a' b) dynamicSet :: (Monad m) => (c -> Subwire e m a b) -> Wire e m (Either a c) b The Idea is that the dynamicSet in every invocation either creates wires or steps them: mainWire :: WireP Input mainWire = proc input -> do userControlledObject <- userControlledObjectWire -< input rec let collisionData = ... objects <- dynamicSet -< if input == UpdatePhysics then Left collisionData else Right input So far so good, what bothers me is, that when I have several dynamicSets (different kind of objects) I have to make several if input == ... then ... else ... constructs, which feels repeative. I would welcome some input on how to structure the main loop and/or dynamic set... Regards, Nathan