mapMM
:: Monad m
=> (a
-> m b
) -> [a
] -> m
[b
]mapMM _f [] = pure []
mapMM f (x:xs) = do
y <- f x
ys <- mapMM f xs
pure $ y:ys
p 1488 = Nothing
p x = Just x
main = do
print $ mapMM Just
[1, 2, 1488, 3] print $ mapMM p
[1, 2, 1488, 3]
bWFwTU0gOjogTW9uYWQgbSA9PiAoYSAtPiBtIGIpIC0+IFthXSAtPiBtIFtiXQptYXBNTSBfZiBbXSA9IHB1cmUgW10KbWFwTU0gZiAoeDp4cykgPSBkbwogIHkgPC0gZiB4CiAgeXMgPC0gbWFwTU0gZiB4cwogIHB1cmUgJCB5OnlzCgpwIDo6IEludCAtPiBNYXliZSBJbnQKcCAxNDg4ID0gTm90aGluZwpwIHggPSBKdXN0IHgKCm1haW4gPSBkbwogIHByaW50ICQgbWFwTU0gSnVzdCBbMSwgMiwgMTQ4OCwgM10KICBwcmludCAkIG1hcE0gSnVzdCBbMSwgMiwgMTQ4OCwgM10KICBwcmludCAkIG1hcE1NIHAgWzEsIDIsIDE0ODgsIDNdCiAgcHJpbnQgJCBtYXBNIHAgWzEsIDIsIDE0ODgsIDNdCiAgcHJpbnQgJCBtYXBNTSBwIFtdCiAgcHJpbnQgJCBtYXBNIHAgW10K