Loosen
Declares a derive-like function attr macro which creates another wrap-like function with single tuple-loosened argument, retrieved from the former function.
Upon call, the loosened function propagates the call with the flattened input tuple as arguments to the original function.
Example
# extern crate loosen;
# use loose;
#
# ;
# ;
#
// normal call
fa;
// loose call
let args = ;
fa_loose;
// ie. instead of two arguments,
// there is only a single tuple argument
// another usage exaple
.map
.map
.;
Note
This is a draft and is my first try on proc-macros. I suggested this as an rfc before realising a proc macro would suffice: https://github.com/rust-lang/rfcs/issues/2667