Effect
- это программа, а не значение. Effect (Array String)
- это программа, которая при выполнении выдает Array String
. Вы не можете получить Array String
из этой программы, не выполнив ее.
Один из способов выполнить эту программу - сделать ее частью более крупной программы, такой как, например, ваша main
программа. Как это:
main = do
ns <- fnames
traverse (\a -> log $ show a) ns
Конечно, действительно нет необходимости помещать его в глобальную переменную fnames
, прежде чем сделать его частью программы main
. Вы можете включить readdir "."
напрямую:
main = do
ns <- readdir "."
traverse (\a -> log $ show a) ns