{"action":"created","issue":{"url":"https://api.github.com/repos/rust-lang/rfcs/issues/324","repository_url":"https://api.github.com/repos/rust-lang/rfcs","labels_url":"https://api.github.com/repos/rust-lang/rfcs/issues/324/labels{/name}","comments_url":"https://api.github.com/repos/rust-lang/rfcs/issues/324/comments","events_url":"https://api.github.com/repos/rust-lang/rfcs/issues/324/events","html_url":"https://github.com/rust-lang/rfcs/issues/324","id":43976290,"number":324,"title":"Higher kinded polymorphism","user":{"login":"rust-highfive","id":7378925,"avatar_url":"https://avatars.githubusercontent.com/u/7378925?v=3","gravatar_id":"","url":"https://api.github.com/users/rust-highfive","html_url":"https://github.com/rust-highfive","followers_url":"https://api.github.com/users/rust-highfive/followers","following_url":"https://api.github.com/users/rust-highfive/following{/other_user}","gists_url":"https://api.github.com/users/rust-highfive/gists{/gist_id}","starred_url":"https://api.github.com/users/rust-highfive/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rust-highfive/subscriptions","organizations_url":"https://api.github.com/users/rust-highfive/orgs","repos_url":"https://api.github.com/users/rust-highfive/repos","events_url":"https://api.github.com/users/rust-highfive/events{/privacy}","received_events_url":"https://api.github.com/users/rust-highfive/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/rust-lang/rfcs/labels/postponed","name":"postponed","color":"fbca04"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":59,"created_at":"2014-09-25T22:33:32Z","updated_at":"2016-09-20T18:14:37Z","closed_at":null,"body":"<a href=\"https://github.com/tiffany352\"><img src=\"https://avatars.githubusercontent.com/u/1254344?v=2\" align=\"left\" width=\"96\" height=\"96\" hspace=\"10\"></img></a> **Issue by [tiffany352](https://github.com/tiffany352)**\n_Monday Sep 02, 2013 at 01:14 GMT_\n\n_For earlier discussion, see https://github.com/rust-lang/rust/issues/8922_\n\n_This issue was labelled with: A-typesystem, I-wishlist in the Rust repository_\n\n----\n\nRust doesn't support higher kinded polymorphism, despite being a common feature in many functional programming languages. As far as I know, it is a commonly requested feature from people in the FP crowd.\r\n\n"},"comment":{"url":"https://api.github.com/repos/rust-lang/rfcs/issues/comments/248385693","html_url":"https://github.com/rust-lang/rfcs/issues/324#issuecomment-248385693","issue_url":"https://api.github.com/repos/rust-lang/rfcs/issues/324","id":248385693,"user":{"login":"eddyb","id":77424,"avatar_url":"https://avatars.githubusercontent.com/u/77424?v=3","gravatar_id":"","url":"https://api.github.com/users/eddyb","html_url":"https://github.com/eddyb","followers_url":"https://api.github.com/users/eddyb/followers","following_url":"https://api.github.com/users/eddyb/following{/other_user}","gists_url":"https://api.github.com/users/eddyb/gists{/gist_id}","starred_url":"https://api.github.com/users/eddyb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eddyb/subscriptions","organizations_url":"https://api.github.com/users/eddyb/orgs","repos_url":"https://api.github.com/users/eddyb/repos","events_url":"https://api.github.com/users/eddyb/events{/privacy}","received_events_url":"https://api.github.com/users/eddyb/received_events","type":"User","site_admin":false},"created_at":"2016-09-20T18:14:37Z","updated_at":"2016-09-20T18:14:37Z","body":"@tbenst That has absolutely nothing to do with HKT:\r\n\r\n```rust\r\nfn compose<T, U, V, F: FnMut(T) -> U, G: FnMut(U) -> V>(mut f: F, mut g: G) -> impl FnMut(T) -> V {\r\n    move |x| g(f(x))\r\n}\r\n```\r\nMaking it variadic requires [`VG` (variadic generics)](https://github.com/rust-lang/rfcs/issues/376), but that's also orthogonal to HKT.\r\n\r\nWhat you're doing seems to involve iterators anyway, so you might want combinators for those instead."}}
{"actor":{"display_login":"eddyb"}}