[specialize a few fail to Nothing
Helmut Grohne <grohne@cs.uni-bonn.de>**20140718121421
 Ignore-this: 715edd3b015117728a69a73d55858594
] hunk ./src/Igor2/RuleDevelopment/ListCata.hs 255
-mbListElems :: (Monad m) =>  TExp -> m [TExp]
+mbListElems :: TExp -> Maybe [TExp]
hunk ./src/Igor2/RuleDevelopment/ListCata.hs 258
-         case unfoldTAppE t of 
-            [TConE n _, x, xs] -> if isCons n 
-                                    then mbListElems xs >>= return . (x:)
-                                    else fail "No List"
-            [TConE n _]        -> if isNil n then return [] else fail "No List" 
-            _owise             -> fail "No List"  
-mbListElems l  = fail "No List" 
+         case unfoldTAppE t of
+            [TConE n _, x, xs] -> if isCons n
+                                    then fmap (x:) $ mbListElems xs
+                                    else Nothing
+            [TConE n _]        -> if isNil n then Just [] else Nothing -- No List
+            _owise             -> Nothing -- No List
+mbListElems l  = Nothing -- No List
+