spiros-0.4.2: library/Prelude/Spiros/Print.hs
{-# LANGUAGE CPP #-}
{-# LANGUAGE NoImplicitPrelude #-}
--------------------------------------------------
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE PackageImports #-}
--------------------------------------------------
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE DeriveGeneric #-}
--------------------------------------------------
--------------------------------------------------
{-| Simple string-based printers.
NOTE “Printing” here means rendering \/ displaying \/ showing
(not @stdout@ or @putStrLn@, necessarily).
-}
module Prelude.Spiros.Print
( SimplePrint
) where
--------------------------------------------------
--------------------------------------------------
import Prelude.Spiros.Types
import Prelude.Spiros.Classes
import Prelude.Spiros.Reexports
import Prelude.Spiros.Utilities
import qualified Prelude.Spiros.GUI as GUI
-- import qualified Prelude.Spiros.Base as Base
-- import Prelude.Spiros.Base (String)
--------------------------------------------------
--------------------------------------------------
import "exceptions" Control.Monad.Catch (MonadThrow(..))
--------------------------------------------------
import qualified "containers" Data.Map as Map
--------------------------------------------------
------------------------------------------------
import "base" Control.Exception (Exception(..))
import qualified "base" Prelude
--------------------------------------------------
-- Types -----------------------------------------
--------------------------------------------------
{-| Simple printer.
a Type Alias for showing strings:
@
show :: (Show a) => 'SimplePrint' a
@
Usage:
@
-- an example printer:
printVerbosity :: 'SimpleParse' Verbosity
printVerbosity = \case
Concise -> \"concise\"
Verbose -> \"verbose\"
-- for this type:
data Verbosity = Concise | Verbose
@
-}
type SimplePrint a =
(a -> String)
--------------------------------------------------
-- Definitions -----------------------------------
--------------------------------------------------
--------------------------------------------------
--------------------------------------------------