{"action":"created","issue":{"url":"https://api.github.com/repos/marbelous-lang/docs/issues/7","labels_url":"https://api.github.com/repos/marbelous-lang/docs/issues/7/labels{/name}","comments_url":"https://api.github.com/repos/marbelous-lang/docs/issues/7/comments","events_url":"https://api.github.com/repos/marbelous-lang/docs/issues/7/events","html_url":"https://github.com/marbelous-lang/docs/issues/7","id":51765220,"number":7,"title":"Lock/Release device pair","user":{"login":"mbuettner","id":1846708,"avatar_url":"https://avatars.githubusercontent.com/u/1846708?v=3","gravatar_id":"","url":"https://api.github.com/users/mbuettner","html_url":"https://github.com/mbuettner","followers_url":"https://api.github.com/users/mbuettner/followers","following_url":"https://api.github.com/users/mbuettner/following{/other_user}","gists_url":"https://api.github.com/users/mbuettner/gists{/gist_id}","starred_url":"https://api.github.com/users/mbuettner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mbuettner/subscriptions","organizations_url":"https://api.github.com/users/mbuettner/orgs","repos_url":"https://api.github.com/users/mbuettner/repos","events_url":"https://api.github.com/users/mbuettner/events{/privacy}","received_events_url":"https://api.github.com/users/mbuettner/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/marbelous-lang/docs/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2014-12-12T02:52:14Z","updated_at":"2015-07-11T06:47:31Z","closed_at":null,"body":"An asymmetric version of the synchronisers could be useful. Say we call them `Rn` and `Ln`. The `Ln` hold a marble like a synchroniser and stall. The `Rn` let all marbles pass through. But if a marble goes through an `Rn`, all marbles in the corresponding `Ln` are released.\r\n\r\n(This would be a device which cannot be implemented within Marbelous, so would be an actual language addition.)"},"comment":{"url":"https://api.github.com/repos/marbelous-lang/docs/issues/comments/120587959","html_url":"https://github.com/marbelous-lang/docs/issues/7#issuecomment-120587959","issue_url":"https://api.github.com/repos/marbelous-lang/docs/issues/7","id":120587959,"user":{"login":"es1024","id":6742815,"avatar_url":"https://avatars.githubusercontent.com/u/6742815?v=3","gravatar_id":"","url":"https://api.github.com/users/es1024","html_url":"https://github.com/es1024","followers_url":"https://api.github.com/users/es1024/followers","following_url":"https://api.github.com/users/es1024/following{/other_user}","gists_url":"https://api.github.com/users/es1024/gists{/gist_id}","starred_url":"https://api.github.com/users/es1024/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/es1024/subscriptions","organizations_url":"https://api.github.com/users/es1024/orgs","repos_url":"https://api.github.com/users/es1024/repos","events_url":"https://api.github.com/users/es1024/events{/privacy}","received_events_url":"https://api.github.com/users/es1024/received_events","type":"User","site_admin":false},"created_at":"2015-07-11T06:47:31Z","updated_at":"2015-07-11T06:47:31Z","body":"@mrskin I believe that was a deliberate choice (to use symbols for base devices to free up the namespace for naming boards). I'd suggest `|n` for the release device: synchronisers are `&n`, and act somewhat like an AND operator (all must be filled to continue), and the release device acts somewhat like an OR operator (either all synchronisers are filled, or the release device is filled when the synchroniser is released)."}}