CHARM: Concurrency and Hiding in an Abstract Rewriting Machine