    {-# LANGUAGE CPP #-}
    #if __GLASGOW_HASKELL__ >= 703
    {-# LANGUAGE Safe #-}
    #endif
    -- |
    -- Maintainer  : judah.jacobson@gmail.com
    -- Stability   : experimental
    -- Portability : portable (FFI)
    module System.Console.Terminfo.Edit where

    import System.Console.Terminfo.Base

    -- | Clear the screen, and move the cursor to the upper left.
    clearScreen :: Capability (LinesAffected -> TermOutput)
    clearScreen = fmap ($ []) $ tiGetOutput "clear"

    -- | Clear from beginning of line to cursor.
    clearBOL :: TermStr s => Capability s
    clearBOL = tiGetOutput1 "el1"

    -- | Clear from cursor to end of line.
    clearEOL :: TermStr s => Capability s
    clearEOL = tiGetOutput1 "el"

    -- | Clear display after cursor.
    clearEOS :: Capability (LinesAffected -> TermOutput)
    clearEOS = fmap ($ []) $ tiGetOutput "ed"