Imagine the following scenario:

```
typedef std::function<float(float)> A;
typedef float(*B)(float);

A foo();
void bar(B b);

```

You wish to do something along the lines of:

```
bar(foo());

```

Obviously this does not work. Mainly because `A` can contain a state and `B` is a function pointer. What if we know that `A` does not contain a state and we wish to somehow take it's "meaning" and put it into something that can be passed for a `B`?

Is it impossible?