Warning! It seems that you are using Dodona within another webpage, so not everything may work properly. Let your teacher know so that he can solve the problem by adjusting a setting in the learning environment. In the meantime, you can click this link to open Dodona in a new window.
EitherIO Monad met do-notatie
Sign in to test your solution.
data EitherIO e a = EitherIO { runEitherIO :: IO (Either e a) }
instance Functor (EitherIO e) where
fmap f x = EitherIO $ do either <- runEitherIO x
return undefined
instance Applicative (EitherIO e) where
pure = EitherIO . return . Right
f <*> x = EitherIO $ do f' <- runEitherIO f
x' <- runEitherIO x
return undefined
instance Monad (EitherIO e) where
return = pure
m >>= k = EitherIO $ do m' <- runEitherIO m
return undefined
You can submit as many times as you like. Only your latest submission will be taken into account.
Sign in to test your solution.