main = do
safeHead
:: [a
] -> Maybe a
partial
:: (a
-> b
) -> (a
-> Bool) -> a
-> Maybe b
partial f p x
| p x
= Just
$ f x
| otherwise = Nothing
bWFpbiA9IGRvCiAgcHJpbnQgJCBzYWZlSGVhZCAoW10gOjogW0ludF0pCiAgcHJpbnQgJCBzYWZlSGVhZCAoWzEsMl0gOjogW0ludF0pCgpzYWZlSGVhZCA6OiBbYV0gLT4gTWF5YmUgYQpzYWZlSGVhZCA9IHBhcnRpYWwgaGVhZCAobm90IC4gbnVsbCkKCnBhcnRpYWwgOjogKGEgLT4gYikgLT4gKGEgLT4gQm9vbCkgLT4gYSAtPiBNYXliZSBiCnBhcnRpYWwgZiBwIHggfCBwIHggPSBKdXN0ICQgZiB4IHwgb3RoZXJ3aXNlID0gTm90aGluZwo=