 
            
            
            
            
                27 Apr
                
                    2014
                
            
            
                27 Apr
                
                '14
                
            
            
            
        
    
                4:27 a.m.
            
        Hi Cafe, I don't understand why this doesn't work: import qualified Data.Vector.Generic as G import Control.Monad.ST test :: G.Vector v a => v a -> v a test x = runST . (>>= G.freeze) . G.thaw $ x But if I replace "." with "$", it can compile. test x = runST $ (>>= G.freeze) . G.thaw $ x I originally though f $ g x can always be written as f . g $ x