packages feed

cherry-core-alpha-0.4.0.0: src/Terminal.hs

{-# LANGUAGE PackageImports #-}

{-|

Module      : Terminal
Description : Read and write to the terminal.
License     : BSD 3
Maintainer  : terezasokol@gmail.com
Stability   : experimental
Portability : POSIX

Read and write to the terminal.

-}

module Terminal (write, read) where

import qualified List
import qualified String
import qualified Internal.Task as Task
import qualified Internal.Utils as U
import qualified "text-utf8" Data.Text.IO as IO
import Prelude (return, getContents)
import Basics
import Maybe (Maybe (..))
import Result (Result (..))
import String (String)
import Dict (Dict)
import List (List)
import Array (Array)
import Task (Task)
import Set (Set)
import Char (Char)


{-| -}
write :: String -> Task x ()
write string =
  Task.Task <| do
    IO.putStrLn (String.toTextUtf8 string)
    return (Ok ())


{-| -}
read :: Task x String
read =
  Task.Task <| do
    contents <- IO.getLine
    return (Ok (String.fromTextUtf8 contents))