packages feed

freer-0.2.4.0: examples/src/Main.hs

{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
module Main where

import Control.Monad.Freer
import Teletype

runner :: (Member Teletype r) => Eff r ()
runner = do
  x <- getLine'
  _ <- getLine'
  putStrLn' x
  z <- getLine'
  putStrLn' z
  putStrLn' x
  putStrLn' x

main :: IO ()
main = do
  let xs = runTeletypePure ["cat", "fish", "dog", "bird"] runner
  print xs
  runTeletype runner