Объявления типа внешней привязки без ScopedTypeVariables

У меня есть следующее рабочее определение:

{-# 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

Просто из любопытства мне интересно, как я мог бы реализовать это, не используяScopedTypeVariables прагма, или могу ли я вообще, и что предполагаемое объявление типаprocessError на самом деле, потому что указаниеprocessError :: IOException -> IO a делает его некомпилируемым

Ответы на вопрос(3)

Ваш ответ на вопрос