OK,
I tried this one:

test:: IO (Maybe a)
test = return Nothing

It looks similar and it seems to work...

On Tue, Jan 5, 2021 at 8:22 PM Velichko Lefterov <velichko.lefterov@gmail.com> wrote:
Hello,
could someone explain me simple how return-type polymorphism works
in the following case:
newEmptyMVar :: IO (MVar a) ?