{"action":"created","issue":{"url":"https://api.github.com/repos/twitter/algebird/issues/411","labels_url":"https://api.github.com/repos/twitter/algebird/issues/411/labels{/name}","comments_url":"https://api.github.com/repos/twitter/algebird/issues/411/comments","events_url":"https://api.github.com/repos/twitter/algebird/issues/411/events","html_url":"https://github.com/twitter/algebird/pull/411","id":56888017,"number":411,"title":"Add MapAggregator to compose tuples of (key, agg) pairs","user":{"login":"DanielleSucher","id":1193691,"avatar_url":"https://avatars.githubusercontent.com/u/1193691?v=3","gravatar_id":"","url":"https://api.github.com/users/DanielleSucher","html_url":"https://github.com/DanielleSucher","followers_url":"https://api.github.com/users/DanielleSucher/followers","following_url":"https://api.github.com/users/DanielleSucher/following{/other_user}","gists_url":"https://api.github.com/users/DanielleSucher/gists{/gist_id}","starred_url":"https://api.github.com/users/DanielleSucher/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DanielleSucher/subscriptions","organizations_url":"https://api.github.com/users/DanielleSucher/orgs","repos_url":"https://api.github.com/users/DanielleSucher/repos","events_url":"https://api.github.com/users/DanielleSucher/events{/privacy}","received_events_url":"https://api.github.com/users/DanielleSucher/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-02-07T00:35:23Z","updated_at":"2015-02-07T00:42:29Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/twitter/algebird/pulls/411","html_url":"https://github.com/twitter/algebird/pull/411","diff_url":"https://github.com/twitter/algebird/pull/411.diff","patch_url":"https://github.com/twitter/algebird/pull/411.patch"},"body":"Add a MapAggregator to join tuples of (K, Aggregator[A, Bn, C]) pairs\r\ninto a composed Aggregator[A, TupleN[B1,...,BN], Map[K, C]].\r\n\r\ncc @avibryant @mlmanapat"},"comment":{"url":"https://api.github.com/repos/twitter/algebird/issues/comments/73339810","html_url":"https://github.com/twitter/algebird/pull/411#issuecomment-73339810","issue_url":"https://api.github.com/repos/twitter/algebird/issues/411","id":73339810,"user":{"login":"avibryant","id":9892,"avatar_url":"https://avatars.githubusercontent.com/u/9892?v=3","gravatar_id":"","url":"https://api.github.com/users/avibryant","html_url":"https://github.com/avibryant","followers_url":"https://api.github.com/users/avibryant/followers","following_url":"https://api.github.com/users/avibryant/following{/other_user}","gists_url":"https://api.github.com/users/avibryant/gists{/gist_id}","starred_url":"https://api.github.com/users/avibryant/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/avibryant/subscriptions","organizations_url":"https://api.github.com/users/avibryant/orgs","repos_url":"https://api.github.com/users/avibryant/repos","events_url":"https://api.github.com/users/avibryant/events{/privacy}","received_events_url":"https://api.github.com/users/avibryant/received_events","type":"User","site_admin":false},"created_at":"2015-02-07T00:42:29Z","updated_at":"2015-02-07T00:42:29Z","body":"I could be wrong about this but I think it would be more usable if the `apply` methods took N Tuple2 parameters instead of a single TupleN[Tuple2...]. As a practical matter, that means you wouldn't need the extra set of params and constructing a `MapAggregator` would look almost exactly like constructing a `Map`: `MapAggregator(\"min\" -> Aggregator.min, \"max\" -> Aggregator.max)`."}}