История изменений
Исправление Miguel, (текущая версия) :
class Monad m => MonadData m where getData :: m String
instance MonadData IO where
getData =
do putStr "Enter data:"
readLine
instance Monad m => MonadData (ReaderT String m) where getData = ask
myCoolFunction :: MonadData m => SomeInput -> m Whatever
myCoolFunction input =
do userData <- getData
return (someCalculation userData input)
Исходная версия Miguel, :
class Monad m => MonadData m where getData :: m String
instance MonadData IO where
getData =
do putStr "Enter data:"
readLine
instance Monad m => MonadData (ReaderT String m) where getData = ask
myCoolFunction :: MonadData m => SomeInput -> m Whatever
myCoolFunction input =
do data <- getData
return (someCalculation data input)