Would this be better as 

```haskell
return $ cur : mapMaybe (flip elemIndex all) vis
```

Then it is a bit clearer that it can't fail