> redirect :: Status -> ResponseHeaders -> URI -> Maybe Response Source
> Smart constructor to build a redirect
> Checks if the Status is a redirection and the URI is absolute
>
> redirect' :: Monad m => Status -> ResponseHeaders -> URI -> m Response Source
> Smart constructor to build a redirect
> Asserts redirect conditions with an irrefutable pattern match, only use on hard-coded values.
What does "check" mean here? What happens if it fails the check? Why must the URI be absolute? Why is there second function ( redirect' ) ?