Make Rust Closure Types Namable

This crate provides some types and macros that can create closures which type is namable.

To use, as usual,

```rust

[macrouse] extern crate namableclosures;

use namableclosures::Closure; fn main() { let addten:Closure = closure!(state, i, i+*state, 10); println!("{}",add_ten(1)); //11 } ```

There are 5 variants of the types, each of them have 3 type variables. The State variable correspond to the captured environment of a closure. The Input must be a unit or tuple type, correspond to the arguments of the closure. The Output is the return type of the closure.

In additional to letting you name the closure type, the function body cannot capture any variable by default, so all captures must be explicit.

Nightly only

As this crate depends on unstable featues, unless fn_traits and unboxed_closures become stable this crate only works on nightly build.