setRuleOperation :: Monad m => RuleOp -> Elem -> Int -> InstanceBuilder a b m ()
setRuleOperation o N i = do (Morphism ns es) <- getCurrentRule
                            let rl = filter (not . selectAction (byElementId i)) ns
                                [rc] = filter (selectAction (byElementId i)) ns
                            setCurrentRule $ Morphism (ruleOP o rc:rl) es
setRuleOperation :: Monad m => RuleOp -> Elem -> Int -> InstanceBuilder a b m ()
setRuleOperation o N i = do (Morphism ns es) <- getCurrentRule
                            let rl = filter (not . selectAction (byElementId i)) ns
                                [rc] = filter (selectAction (byElementId i)) ns
                            setCurrentRule $ Morphism (ruleOP o rc:rl) es
setRuleOperation o N i = do (Morphism ns es) <- getCurrentRule
                            let rl = filter (not . selectAction (byElementId i)) ns
                                [rc] = filter (selectAction (byElementId i)) ns
                            setCurrentRule $ Morphism (ruleOP o rc:rl) es