17 Nov
                
                    2009
                
            
            
                17 Nov
                
                '09
                
            
            
            
        
    
                2:20 p.m.
            
        Is there a deep reason (beyond saving a sentence or two in the language definition) for requiring all patterns in a function binding to have the same explicit arity? For example, in dropWhile0 :: Num a => [a] -> [a] dropWhile0 (0:xs) = dropWhile0 xs dropWhile0 xs = xs why shouldn't the last line be replaceable by dropWhile0 = id