LoosenMap

Calls a function with self.
ie. a.loose_map(b) = b(a).

Declares a trait/method similar to std::iter::Iterator::map, where any type that is the sole argument for a function can be called into such function.

ps. I called this "being mapped into such function" but I don't know if this is correct.

Example with Loosen

This is an example of usage with the loosen attr derive macro.

```rust use loosen::loose; use ow::LooseMap; #

struct A;

struct B;

[loose]

fn fa(a: A, b: B) -> bool { true }

// normal call assert!(fa(A, B));

// loose call, available from the loosen crate assert!(fa_loose((A, B)));

// loosemap with loose call assert!((A, B).loosemap(fa_loose)); // ie. from the argument (or loosened arguments), // you may call some function (or loosened function) ```