    {-# 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 :: Capability (LinesAffected -> TermOutput)
    clearScreen = (([LinesAffected] -> LinesAffected -> TermOutput)
     -> LinesAffected -> TermOutput)
    -> Capability ([LinesAffected] -> LinesAffected -> TermOutput)
    -> Capability (LinesAffected -> TermOutput)
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (([LinesAffected] -> LinesAffected -> TermOutput)
    -> [LinesAffected] -> LinesAffected -> TermOutput
    forall a b. (a -> b) -> a -> b
    $ []) (Capability ([LinesAffected] -> LinesAffected -> TermOutput)
     -> Capability (LinesAffected -> TermOutput))
    -> Capability ([LinesAffected] -> LinesAffected -> TermOutput)
    -> Capability (LinesAffected -> TermOutput)
    forall a b. (a -> b) -> a -> b
    $ String
    -> Capability ([LinesAffected] -> LinesAffected -> TermOutput)
    tiGetOutput String
    "clear"

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

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

    -- | Clear display after cursor.
    clearEOS :: Capability (LinesAffected -> TermOutput)
    clearEOS :: Capability (LinesAffected -> TermOutput)
    clearEOS = (([LinesAffected] -> LinesAffected -> TermOutput)
     -> LinesAffected -> TermOutput)
    -> Capability ([LinesAffected] -> LinesAffected -> TermOutput)
    -> Capability (LinesAffected -> TermOutput)
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (([LinesAffected] -> LinesAffected -> TermOutput)
    -> [LinesAffected] -> LinesAffected -> TermOutput
    forall a b. (a -> b) -> a -> b
    $ []) (Capability ([LinesAffected] -> LinesAffected -> TermOutput)
     -> Capability (LinesAffected -> TermOutput))
    -> Capability ([LinesAffected] -> LinesAffected -> TermOutput)
    -> Capability (LinesAffected -> TermOutput)
    forall a b. (a -> b) -> a -> b
    $ String
    -> Capability ([LinesAffected] -> LinesAffected -> TermOutput)
    tiGetOutput String
    "ed"