Address comments from #280 on f3b5d76.

* Invalid return type should invoke 'continue' in the outer loop.
* Use static typing for 'Provider' and 'Lazy' types.

cc/ @tbroyer