20 lines
		
	
	
	
		
			805 B
			
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			20 lines
		
	
	
	
		
			805 B
			
		
	
	
	
		
			Text
		
	
	
	
	
	
| [[!comment format=mdwn
 | |
|  username="https://www.google.com/accounts/o8/id?id=AItOawnq-RfkVpFN15SWvQ2lpSGAi0XpNQuLxKM"
 | |
|  nickname="Yuval"
 | |
|  subject="What about safe?"
 | |
|  date="2014-07-06T10:45:59Z"
 | |
|  content="""
 | |
| https://hackage.haskell.org/package/safe
 | |
| 
 | |
| > A library wrapping Prelude/Data.List functions that can throw exceptions, such as head and !!. Each unsafe function has up to four variants, e.g. with tail:
 | |
| > 
 | |
| >     tail :: [a] -> [a], raises an error on tail [].
 | |
| 
 | |
| >     tailMay :: [a] -> Maybe [a], turns errors into Nothing.
 | |
| 
 | |
| >     tailDef :: [a] -> [a] -> [a], takes a default to return on errors.
 | |
| 
 | |
| >     tailNote :: String -> [a] -> [a], takes an extra argument which supplements the error message.
 | |
| 
 | |
| >     tailSafe :: [a] -> [a], returns some sensible default if possible, [] in the case of tail.
 | |
| """]]
 | 
