Use the reader monad