{"action":"created","issue":{"url":"https://api.github.com/repos/michaelballantyne/faster-miniKanren/issues/4","repository_url":"https://api.github.com/repos/michaelballantyne/faster-miniKanren","labels_url":"https://api.github.com/repos/michaelballantyne/faster-miniKanren/issues/4/labels{/name}","comments_url":"https://api.github.com/repos/michaelballantyne/faster-miniKanren/issues/4/comments","events_url":"https://api.github.com/repos/michaelballantyne/faster-miniKanren/issues/4/events","html_url":"https://github.com/michaelballantyne/faster-miniKanren/issues/4","id":294420664,"number":4,"title":"Add generalized absento","user":{"login":"michaelballantyne","id":1429331,"avatar_url":"https://avatars3.githubusercontent.com/u/1429331?v=4","gravatar_id":"","url":"https://api.github.com/users/michaelballantyne","html_url":"https://github.com/michaelballantyne","followers_url":"https://api.github.com/users/michaelballantyne/followers","following_url":"https://api.github.com/users/michaelballantyne/following{/other_user}","gists_url":"https://api.github.com/users/michaelballantyne/gists{/gist_id}","starred_url":"https://api.github.com/users/michaelballantyne/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaelballantyne/subscriptions","organizations_url":"https://api.github.com/users/michaelballantyne/orgs","repos_url":"https://api.github.com/users/michaelballantyne/repos","events_url":"https://api.github.com/users/michaelballantyne/events{/privacy}","received_events_url":"https://api.github.com/users/michaelballantyne/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":2,"created_at":"2018-02-05T14:54:52Z","updated_at":"2018-02-05T20:12:51Z","closed_at":null,"author_association":"OWNER","body":"Thoughts copied from https://github.com/michaelballantyne/faster-miniKanren/issues/2\r\n\r\n`(absento a b)` is equivalent to: for all subtrees `s` of `b`, `(=/= a s)`. \r\n\r\nApplying `(absento a b)` where `a` and `b` are fresh logic variables should apply `(=/= a b)` and add `a` to the absento part of the constraint record for `b`. If `b` is instantiated to a pair `(c . d)`, we'll consult the constraint record and apply `(absento a c)` and `(absento a d)`, which will create the disequalities and add the absento constraint record to `c` and `d` just as we did with `b`.\r\n\r\nGeneralized absento still doesn't allow a constraint to restrict the range of values for a variable to a finite range, so it shouldn't break any of the assumptions that make the attributed variable implementation safe."},"comment":{"url":"https://api.github.com/repos/michaelballantyne/faster-miniKanren/issues/comments/363206991","html_url":"https://github.com/michaelballantyne/faster-miniKanren/issues/4#issuecomment-363206991","issue_url":"https://api.github.com/repos/michaelballantyne/faster-miniKanren/issues/4","id":363206991,"user":{"login":"webyrd","id":1168260,"avatar_url":"https://avatars2.githubusercontent.com/u/1168260?v=4","gravatar_id":"","url":"https://api.github.com/users/webyrd","html_url":"https://github.com/webyrd","followers_url":"https://api.github.com/users/webyrd/followers","following_url":"https://api.github.com/users/webyrd/following{/other_user}","gists_url":"https://api.github.com/users/webyrd/gists{/gist_id}","starred_url":"https://api.github.com/users/webyrd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/webyrd/subscriptions","organizations_url":"https://api.github.com/users/webyrd/orgs","repos_url":"https://api.github.com/users/webyrd/repos","events_url":"https://api.github.com/users/webyrd/events{/privacy}","received_events_url":"https://api.github.com/users/webyrd/received_events","type":"User","site_admin":false},"created_at":"2018-02-05T20:12:51Z","updated_at":"2018-02-05T20:12:51Z","author_association":"CONTRIBUTOR","body":"I'll give it a shot!  :)\r\n\r\nI'm excited as well!"}}
{"actor":{"display_login":"webyrd"}}