3 -- ask , tell are both from the Interaction context 4 -- setEnv , getHosts is from the EnvConfig context 5 -- restartEach is from the Elasticsearch context 6 7 program :: Free Context () 8 program = forever $ do 9 env <- ask "Which environment?" 10 setEnv env 11 hosts <- getHosts 12 tell $ show hosts ++ "\n" 13 restartEach hosts 14 return ()