On Tuesday, 3 October 2017 at 13:31:00 UTC, sighoya wrote:
struct Bar (R,S) {
T!(S!R) bar(alias T,alias S,R)(T!(S!R) v) {return v;}
Bar takes two arguments, but here you are only passing one. Keep in mind that T!(...) is Bar. You called T!(S!(R)) when it was actually written to accept T!(S, R)
It might help to forget about the ! and just think of regular functions.
Bar(R, S); is the definition but inside you called T(S(R)) when it expected T(S, R)
