deleteRule :: Monad m => Int -> InstanceBuilder a b m ()
deleteRule i = do rs <- getRules
                  let rs' = filter ((/= i) . fst) rs
                  putRules rs'

-- | Checks if the graph and all rules are consistent, calls fail if not.
deleteRule :: Monad m => Int -> InstanceBuilder a b m ()
deleteRule i = do rs <- getRules
                  let rs' = filter ((/= i) . fst) rs
                  putRules rs'

-- | Checks if the graph and all rules are consistent, calls fail if not.
deleteRule i = do rs <- getRules
                  let rs' = filter ((/= i) . fst) rs
                  putRules rs'

-- | Checks if the graph and all rules are consistent, calls fail if not.