Declaraciones de tipo de enlace externo sin ScopedTypeVariables
Tengo una siguiente definición de trabajo:
{-# LANGUAGE ScopedTypeVariables #-}
module Control.Retry where
import Prelude hiding (catch)
import Control.Exception
import Control.Concurrent
retrying [] action = action
retrying (i:is) action = catch action processError
where
processError (e :: IOException) = threadDelay i >> retrying is action
Solo por curiosidad, me pregunto cómo podría reimplementar esto sin utilizar elScopedTypeVariables
pragma, o si puedo, y cuál es la declaración de tipo inferida deprocessError
En realidad es, porque especificando.processError :: IOException -> IO a
lo hace no compilable.