AP
Size: a a a
AP
AP
AP
AP
к
AP
A
AP
к
AP
AP
AP
AP
> safeHead l = do { (x:_) <- pure l; pure x }
> safeHead [] :: [Int]
[]
> safeHead [] :: Maybe Int
Nothing
AP
> :t safeHead
safeHead :: MonadFail m => [b] -> m b
A
AP
AP
A
AP
> :set -XMonadComprehensions
> safeHead l = [x | (x:_) <- pure l]
> :t safeHead
safeHead :: MonadFail m => [b] -> m b
> safeHead [] :: Maybe Int
Nothing
A