{"action":"opened","issue":{"url":"https://api.github.com/repos/jtapolczai/Hephaestos/issues/103","labels_url":"https://api.github.com/repos/jtapolczai/Hephaestos/issues/103/labels{/name}","comments_url":"https://api.github.com/repos/jtapolczai/Hephaestos/issues/103/comments","events_url":"https://api.github.com/repos/jtapolczai/Hephaestos/issues/103/events","html_url":"https://github.com/jtapolczai/Hephaestos/issues/103","id":56167629,"number":103,"title":"Add \"subcommand\" feature to System.REPL.Command","user":{"login":"jtapolczai","id":6168914,"avatar_url":"https://avatars.githubusercontent.com/u/6168914?v=3","gravatar_id":"","url":"https://api.github.com/users/jtapolczai","html_url":"https://github.com/jtapolczai","followers_url":"https://api.github.com/users/jtapolczai/followers","following_url":"https://api.github.com/users/jtapolczai/following{/other_user}","gists_url":"https://api.github.com/users/jtapolczai/gists{/gist_id}","starred_url":"https://api.github.com/users/jtapolczai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jtapolczai/subscriptions","organizations_url":"https://api.github.com/users/jtapolczai/orgs","repos_url":"https://api.github.com/users/jtapolczai/repos","events_url":"https://api.github.com/users/jtapolczai/events{/privacy}","received_events_url":"https://api.github.com/users/jtapolczai/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/jtapolczai/Hephaestos/labels/effort:%20huge","name":"effort: huge","color":"0000FF"},{"url":"https://api.github.com/repos/jtapolczai/Hephaestos/labels/importance:%20minor","name":"importance: minor","color":"fbca04"},{"url":"https://api.github.com/repos/jtapolczai/Hephaestos/labels/type:%20feature","name":"type: feature","color":"0052cc"}],"state":"open","locked":false,"assignee":{"login":"jtapolczai","id":6168914,"avatar_url":"https://avatars.githubusercontent.com/u/6168914?v=3","gravatar_id":"","url":"https://api.github.com/users/jtapolczai","html_url":"https://github.com/jtapolczai","followers_url":"https://api.github.com/users/jtapolczai/followers","following_url":"https://api.github.com/users/jtapolczai/following{/other_user}","gists_url":"https://api.github.com/users/jtapolczai/gists{/gist_id}","starred_url":"https://api.github.com/users/jtapolczai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jtapolczai/subscriptions","organizations_url":"https://api.github.com/users/jtapolczai/orgs","repos_url":"https://api.github.com/users/jtapolczai/repos","events_url":"https://api.github.com/users/jtapolczai/events{/privacy}","received_events_url":"https://api.github.com/users/jtapolczai/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/jtapolczai/Hephaestos/milestones/10","labels_url":"https://api.github.com/repos/jtapolczai/Hephaestos/milestones/10/labels","id":956822,"number":10,"title":"1.7","description":"","creator":{"login":"jtapolczai","id":6168914,"avatar_url":"https://avatars.githubusercontent.com/u/6168914?v=3","gravatar_id":"","url":"https://api.github.com/users/jtapolczai","html_url":"https://github.com/jtapolczai","followers_url":"https://api.github.com/users/jtapolczai/followers","following_url":"https://api.github.com/users/jtapolczai/following{/other_user}","gists_url":"https://api.github.com/users/jtapolczai/gists{/gist_id}","starred_url":"https://api.github.com/users/jtapolczai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jtapolczai/subscriptions","organizations_url":"https://api.github.com/users/jtapolczai/orgs","repos_url":"https://api.github.com/users/jtapolczai/repos","events_url":"https://api.github.com/users/jtapolczai/events{/privacy}","received_events_url":"https://api.github.com/users/jtapolczai/received_events","type":"User","site_admin":false},"open_issues":6,"closed_issues":0,"state":"open","created_at":"2015-01-29T14:41:33Z","updated_at":"2015-02-01T15:54:40Z","due_on":"2015-03-30T22:00:00Z","closed_at":null},"comments":0,"created_at":"2015-02-01T15:54:40Z","updated_at":"2015-02-01T15:54:40Z","closed_at":null,"body":"Relates to and generalizes issue #102.\r\n\r\nIt should be possible to chain commands `S`, `T_1,...,T_n` s.t.\r\n\r\n1) `S` gets the entire input and consumes as much as it wants, then returns the unconsumed rest.\r\n2.1) If `S` has consumed the input, nothing is done.\r\n2.2) If the rest is of the form `(x:xs)`, it is turned over to `T_1,...,T_n`: the first `T_i` for which `x` passes the commandTest is run.\r\n\r\nChaining can also be done recursively by folding a rose tree of commands."}}