{"action":"created","issue":{"url":"https://api.github.com/repos/ramda/ramda/issues/907","labels_url":"https://api.github.com/repos/ramda/ramda/issues/907/labels{/name}","comments_url":"https://api.github.com/repos/ramda/ramda/issues/907/comments","events_url":"https://api.github.com/repos/ramda/ramda/issues/907/events","html_url":"https://github.com/ramda/ramda/pull/907","id":60728932,"number":907,"title":"(WIP) Meta implementation","user":{"login":"megawac","id":3475472,"avatar_url":"https://avatars.githubusercontent.com/u/3475472?v=3","gravatar_id":"","url":"https://api.github.com/users/megawac","html_url":"https://github.com/megawac","followers_url":"https://api.github.com/users/megawac/followers","following_url":"https://api.github.com/users/megawac/following{/other_user}","gists_url":"https://api.github.com/users/megawac/gists{/gist_id}","starred_url":"https://api.github.com/users/megawac/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/megawac/subscriptions","organizations_url":"https://api.github.com/users/megawac/orgs","repos_url":"https://api.github.com/users/megawac/repos","events_url":"https://api.github.com/users/megawac/events{/privacy}","received_events_url":"https://api.github.com/users/megawac/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":22,"created_at":"2015-03-11T21:01:14Z","updated_at":"2015-06-11T21:08:11Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/ramda/ramda/pulls/907","html_url":"https://github.com/ramda/ramda/pull/907","diff_url":"https://github.com/ramda/ramda/pull/907.diff","patch_url":"https://github.com/ramda/ramda/pull/907.patch"},"body":"For discussion before this goes any further\r\n\r\nCurrently the obvious 15 tests fail.\r\n\r\nThis implements all the internal methods that rely on the `arity` of a function through metadata. It also tracks the source function and name of a function.\r\n\r\nAn obvious extension of this is to do native unwrapping (for example doing currying and partial and other decorators in a single method as lodash does [big benefit!])\r\n\r\nThe main motivation of this is (for me) is a) a big perf benefit by avoiding arity and b) enables us to later implement `restParams` which will be a substantial improvement in several places in the code base (it didn't make sense to implement this through arity). Overall this enables a couple follow up optimizations\r\n\r\nPoints of interest:\r\n\r\n- Should it be added to an object publicly   or use a symbol\r\n- What should be included\r\n- Should repl stuff be added\r\n\r\nBenchmarks to follow (in case its not obvious the benefit): http://jsperf.com/ramda-currying-cost/4\r\n"},"comment":{"url":"https://api.github.com/repos/ramda/ramda/issues/comments/111278008","html_url":"https://github.com/ramda/ramda/pull/907#issuecomment-111278008","issue_url":"https://api.github.com/repos/ramda/ramda/issues/907","id":111278008,"user":{"login":"CrossEye","id":151263,"avatar_url":"https://avatars.githubusercontent.com/u/151263?v=3","gravatar_id":"","url":"https://api.github.com/users/CrossEye","html_url":"https://github.com/CrossEye","followers_url":"https://api.github.com/users/CrossEye/followers","following_url":"https://api.github.com/users/CrossEye/following{/other_user}","gists_url":"https://api.github.com/users/CrossEye/gists{/gist_id}","starred_url":"https://api.github.com/users/CrossEye/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CrossEye/subscriptions","organizations_url":"https://api.github.com/users/CrossEye/orgs","repos_url":"https://api.github.com/users/CrossEye/repos","events_url":"https://api.github.com/users/CrossEye/events{/privacy}","received_events_url":"https://api.github.com/users/CrossEye/received_events","type":"User","site_admin":false},"created_at":"2015-06-11T21:08:11Z","updated_at":"2015-06-11T21:08:11Z","body":"Absolutely.   I want to see where this might go.   I want to see what might happen with your `compose` changes.   I want to see if we can return curried functions everywhere, at least by default.\r\n\r\nMetadata interests me less than some of the others, because in the end its mostly about implementation.   And while I recognize how important a good implementation is, I much more interested at first in the API that's being built. "}}