 
            
            
            
            
                13 Sep
                
                    2010
                
            
            
                13 Sep
                
                '10
                
            
            
            
        
    
                5:28 a.m.
            
        On 09/13/2010 12:23 PM, Michael Lazarev wrote:
2010/9/13 Henning Thielemann
: It means that variables bound by let, may be instantiated to different types later.
Can you give an example, please?
testOk = let f = id in (f 42, f True) --testNotOk :: Monad m => m (Int, Bool) --testNotOk = do f <- return id -- return (f 42, f True) Try uncommenting the 'testNotOk' definition.