FreeQuery: use List.traverseS on State monad