
Hi there! I'm using [selda](https://github.com/valderman/selda) package to work with databases. I'm trying to write a function to generate several tables at once. In the following examples, `categories` and `expenses` are two selda `Table`. The other functions in use and their respective imports should be self-evident: If I do: ``` migrate :: IO () migrate = do dir <- dBDir createDirectoryIfMissing True dir forM_ (categories, expenses) $ withDB . createTable ``` tables are not actually created. However, if I do: ``` migrate :: IO () migrate = do dir <- dBDir createDirectoryIfMissing True dir withDB . createTable $ categories withDB . createTable $ expenses ``` Both tables are actually created. So it seems like the thugs created with `formM_` are actually never executed. Is it so? I'm new with Haskell and it seems strange for me. If it is so, doesn't make it useless `forM_` for IO? Furthermore, I can't reproduce it in ghci. Doing this: ``` ["a", "b"] `forM_` print ``` Actually prints both `"a"` and `"b"`. Thanks for any enlightment. Marc Busqué http://waiting-for-dev.github.io/about/