Hi Cafe,
I don't understand why this doesn't work:
import qualified Data.Vector.Generic as G
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