{"action":"opened","issue":{"url":"https://api.github.com/repos/arrdem/oxcart/issues/27","labels_url":"https://api.github.com/repos/arrdem/oxcart/issues/27/labels{/name}","comments_url":"https://api.github.com/repos/arrdem/oxcart/issues/27/comments","events_url":"https://api.github.com/repos/arrdem/oxcart/issues/27/events","html_url":"https://github.com/arrdem/oxcart/issues/27","id":95128446,"number":27,"title":"Add support for top level imperative forms","user":{"login":"arrdem","id":704767,"avatar_url":"https://avatars.githubusercontent.com/u/704767?v=3","gravatar_id":"","url":"https://api.github.com/users/arrdem","html_url":"https://github.com/arrdem","followers_url":"https://api.github.com/users/arrdem/followers","following_url":"https://api.github.com/users/arrdem/following{/other_user}","gists_url":"https://api.github.com/users/arrdem/gists{/gist_id}","starred_url":"https://api.github.com/users/arrdem/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arrdem/subscriptions","organizations_url":"https://api.github.com/users/arrdem/orgs","repos_url":"https://api.github.com/users/arrdem/repos","events_url":"https://api.github.com/users/arrdem/events{/privacy}","received_events_url":"https://api.github.com/users/arrdem/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-07-15T07:49:16Z","updated_at":"2015-07-15T07:49:16Z","closed_at":null,"body":"One thing Oxcart was never able to do was support multimethods because as implemented in Clojure they fundimentally rely on a mutable indirection mechanism for dynamic installation of dispatch to function values. Since Oxcart tried to throw away all top level imperative forms and escape load order, this doesn't fly which does nobody any good and restricts the subset of Clojure which Oxcart can compile.\r\n\r\nA happy medium could probably be reached by emitting namespaces as a class, having either a cinit or a concrete init method which sequentially invokes the static fns compiled from and for top level forms. Not ideal of course but a workable implementation."}}