Discover plugins to be executed

This branch is for plugin discovery.

```haskell
f  >>= return . g
```
==
```haskell
g <$> f
```