Simplify/Clean up prelude.inc

pull/6/head
Lennart Spitzner 2020-04-10 23:31:47 +02:00
parent d4b3555b77
commit ded3192962
4 changed files with 182 additions and 190 deletions

View File

@ -235,9 +235,9 @@ addFlagReadParam shorts longs name flag =
InputArgs (arg1:argR) -> case runInpParseString arg1 parser of InputArgs (arg1:argR) -> case runInpParseString arg1 parser of
Just ((), "") -> case argR of Just ((), "") -> case argR of
[] -> Nothing [] -> Nothing
(arg2:rest) -> readMaybe arg2 <&> \x -> (x, InputArgs rest) (arg2:rest) -> Text.Read.readMaybe arg2 <&> \x -> (x, InputArgs rest)
Just ((), remainingStr) -> Just ((), remainingStr) ->
readMaybe remainingStr <&> \x -> (x, InputArgs argR) Text.Read.readMaybe remainingStr <&> \x -> (x, InputArgs argR)
Nothing -> _flag_default flag <&> \d -> (d, inp) Nothing -> _flag_default flag <&> \d -> (d, inp)
where where
parser :: InpParseString () parser :: InpParseString ()
@ -316,10 +316,10 @@ addFlagReadParamsAll shorts longs name flag act = addCmdPartManyInpA
InputArgs (arg1:argR) -> case runInpParseString arg1 parser of InputArgs (arg1:argR) -> case runInpParseString arg1 parser of
Just ((), "") -> case argR of Just ((), "") -> case argR of
[] -> mdef [] -> mdef
(arg2:rest) -> (readMaybe arg2 <&> \x -> (x, InputArgs rest)) <|> mdef (arg2:rest) -> (Text.Read.readMaybe arg2 <&> \x -> (x, InputArgs rest)) <|> mdef
where mdef = _flag_default flag <&> \p -> (p, InputArgs argR) where mdef = _flag_default flag <&> \p -> (p, InputArgs argR)
Just ((), remainingStr) -> Just ((), remainingStr) ->
readMaybe remainingStr <&> \x -> (x, InputArgs argR) Text.Read.readMaybe remainingStr <&> \x -> (x, InputArgs argR)
Nothing -> Nothing Nothing -> Nothing
where where
parser :: InpParseString () parser :: InpParseString ()

View File

@ -402,7 +402,7 @@ checkCmdParser mTopLevel cmdParser =
cmd :: CommandDesc out <- mGet cmd :: CommandDesc out <- mGet
subCmd <- do subCmd <- do
stackCur :: CmdDescStack <- mGet stackCur :: CmdDescStack <- mGet
mSet $ fromMaybe (emptyCommandDesc :: CommandDesc out) mInitialDesc mSet $ Maybe.fromMaybe (emptyCommandDesc :: CommandDesc out) mInitialDesc
mSet $ StackBottom mempty mSet $ StackBottom mempty
processMain sub processMain sub
c <- mGet c <- mGet
@ -1102,7 +1102,7 @@ runCmdParserAExt mTopLevel inputInitial cmdParser =
CmdParserChild cmdStr vis _sub _act next -> do CmdParserChild cmdStr vis _sub _act next -> do
mExisting <- takeCommandChild cmdStr mExisting <- takeCommandChild cmdStr
let childDesc :: CommandDesc out = let childDesc :: CommandDesc out =
fromMaybe emptyCommandDesc { _cmd_visibility = vis } mExisting Maybe.fromMaybe emptyCommandDesc { _cmd_visibility = vis } mExisting
cmd_children %=+ Deque.snoc (cmdStr, childDesc) cmd_children %=+ Deque.snoc (cmdStr, childDesc)
next next
CmdParserImpl out next -> do CmdParserImpl out next -> do

View File

@ -211,7 +211,7 @@ ppHelpShallow desc =
PartDefault _ p -> go p PartDefault _ p -> go p
PartSuggestion _ p -> go p PartSuggestion _ p -> go p
PartRedirect s p -> PartRedirect s p ->
[PP.text s $$ PP.nest 20 (fromMaybe PP.empty $ ppPartDescUsage p)] [PP.text s $$ PP.nest 20 (Maybe.fromMaybe PP.empty $ ppPartDescUsage p)]
++ (PP.nest 2 <$> go p) ++ (PP.nest 2 <$> go p)
PartReorder ps -> ps >>= go PartReorder ps -> ps >>= go
PartMany p -> go p PartMany p -> go p
@ -276,7 +276,7 @@ ppHelpDepthOne desc =
visibleChildren = visibleChildren =
[ (n, c) | (Just n, c) <- children, _cmd_visibility c == Visible ] [ (n, c) | (Just n, c) <- children, _cmd_visibility c == Visible ]
childDescs = visibleChildren <&> \(n, c) -> childDescs = visibleChildren <&> \(n, c) ->
PP.text n $$ PP.nest 20 (fromMaybe PP.empty (_cmd_synopsis c)) PP.text n $$ PP.nest 20 (Maybe.fromMaybe PP.empty (_cmd_synopsis c))
commandSection = if null visibleChildren commandSection = if null visibleChildren
then PP.empty then PP.empty
else PP.text "" $+$ PP.text "COMMANDS" $+$ PP.text "" $+$ PP.nest else PP.text "" $+$ PP.text "COMMANDS" $+$ PP.text "" $+$ PP.nest
@ -299,7 +299,7 @@ ppHelpDepthOne desc =
PartDefault _ p -> go p PartDefault _ p -> go p
PartSuggestion _ p -> go p PartSuggestion _ p -> go p
PartRedirect s p -> PartRedirect s p ->
[PP.text s $$ PP.nest 20 (fromMaybe PP.empty $ ppPartDescUsage p)] [PP.text s $$ PP.nest 20 (Maybe.fromMaybe PP.empty $ ppPartDescUsage p)]
++ (PP.nest 2 <$> go p) ++ (PP.nest 2 <$> go p)
PartReorder ps -> ps >>= go PartReorder ps -> ps >>= go
PartMany p -> go p PartMany p -> go p

View File

@ -1,80 +1,80 @@
import qualified Data.Graph -- import qualified Data.Graph
import qualified Data.IntMap -- import qualified Data.IntMap
import qualified Data.IntMap.Lazy -- import qualified Data.IntMap.Lazy
import qualified Data.IntMap.Strict -- import qualified Data.IntMap.Strict
import qualified Data.IntSet -- import qualified Data.IntSet
import qualified Data.Map -- import qualified Data.Map
import qualified Data.Map.Lazy -- import qualified Data.Map.Lazy
import qualified Data.Map.Strict -- import qualified Data.Map.Strict
import qualified Data.Sequence -- import qualified Data.Sequence
import qualified Data.Set -- import qualified Data.Set
import qualified Data.Tree -- import qualified Data.Tree
import qualified Control.Concurrent.Extra -- import qualified Control.Concurrent.Extra
import qualified Control.Exception.Extra -- import qualified Control.Exception.Extra
import qualified Control.Monad.Extra -- import qualified Control.Monad.Extra
import qualified Data.Either.Extra -- import qualified Data.Either.Extra
import qualified Data.IORef.Extra -- import qualified Data.IORef.Extra
import qualified Data.List.Extra -- import qualified Data.List.Extra
import qualified Data.Tuple.Extra -- import qualified Data.Tuple.Extra
import qualified Data.Version.Extra -- import qualified Data.Version.Extra
import qualified Numeric.Extra -- import qualified Numeric.Extra
import qualified System.Directory.Extra -- import qualified System.Directory.Extra
import qualified System.Environment.Extra -- import qualified System.Environment.Extra
import qualified System.IO.Extra -- import qualified System.IO.Extra
import qualified System.Info.Extra -- import qualified System.Info.Extra
import qualified System.Process.Extra -- import qualified System.Process.Extra
import qualified System.Time.Extra -- import qualified System.Time.Extra
import qualified Control.Monad.Trans.MultiRWS.Lazy -- import qualified Control.Monad.Trans.MultiRWS.Lazy
import qualified Control.Monad.Trans.MultiRWS.Strict -- import qualified Control.Monad.Trans.MultiRWS.Strict
import qualified Control.Monad.Trans.MultiReader -- import qualified Control.Monad.Trans.MultiReader
import qualified Control.Monad.Trans.MultiReader.Class -- import qualified Control.Monad.Trans.MultiReader.Class
import qualified Control.Monad.Trans.MultiReader.Lazy -- import qualified Control.Monad.Trans.MultiReader.Lazy
import qualified Control.Monad.Trans.MultiReader.Strict -- import qualified Control.Monad.Trans.MultiReader.Strict
import qualified Control.Monad.Trans.MultiState -- import qualified Control.Monad.Trans.MultiState
import qualified Control.Monad.Trans.MultiState.Class -- import qualified Control.Monad.Trans.MultiState.Class
import qualified Control.Monad.Trans.MultiState.Lazy -- import qualified Control.Monad.Trans.MultiState.Lazy
import qualified Control.Monad.Trans.MultiState.Strict -- import qualified Control.Monad.Trans.MultiState.Strict
import qualified Control.Monad.Trans.MultiWriter -- import qualified Control.Monad.Trans.MultiWriter
import qualified Control.Monad.Trans.MultiWriter.Class -- import qualified Control.Monad.Trans.MultiWriter.Class
import qualified Control.Monad.Trans.MultiWriter.Lazy -- import qualified Control.Monad.Trans.MultiWriter.Lazy
import qualified Control.Monad.Trans.MultiWriter.Strict -- import qualified Control.Monad.Trans.MultiWriter.Strict
import qualified Control.Monad.Trans.MultiRWS.Strict as MultiRWSS -- import qualified Control.Monad.Trans.MultiRWS.Strict as MultiRWSS
import qualified Control.Monad.Trans.MultiRWS.Lazy as MultiRWSL -- import qualified Control.Monad.Trans.MultiRWS.Lazy as MultiRWSL
import qualified Data.Bifunctor -- import qualified Data.Bifunctor
import qualified Data.Bits -- import qualified Data.Bits
import qualified Data.Bool -- import qualified Data.Bool
import qualified Data.Char -- import qualified Data.Char
import qualified Data.Coerce -- import qualified Data.Coerce
import qualified Data.Complex -- import qualified Data.Complex
import qualified Data.Data -- import qualified Data.Data
import qualified Data.Dynamic -- import qualified Data.Dynamic
import qualified Data.Either import qualified Data.Either
import qualified Data.Eq -- import qualified Data.Eq
import qualified Data.Fixed -- import qualified Data.Fixed
import qualified Data.Foldable import qualified Data.Foldable
import qualified Data.Function import qualified Data.Function
import qualified Data.Functor -- import qualified Data.Functor
import qualified Data.Functor.Identity -- import qualified Data.Functor.Identity
import qualified Data.IORef -- import qualified Data.IORef
import qualified Data.Int -- import qualified Data.Int
import qualified Data.Ix -- import qualified Data.Ix
import qualified Data.List -- import qualified Data.List
import qualified Data.Maybe -- import qualified Data.Maybe
import qualified Data.Monoid import qualified Data.Monoid
import qualified Data.Ord -- import qualified Data.Ord
import qualified Data.Proxy -- import qualified Data.Proxy
import qualified Debug.Trace -- import qualified Debug.Trace
import qualified Numeric -- import qualified Numeric
import qualified Numeric.Natural -- import qualified Numeric.Natural
import qualified System.Environment import qualified System.Environment
import qualified System.IO -- import qualified System.IO
import qualified Text.Read import qualified Text.Read
import qualified Text.Show -- import qualified Text.Show
import qualified Unsafe.Coerce -- import qualified Unsafe.Coerce
import qualified Data.Bool as Bool import qualified Data.Bool as Bool
import qualified Data.Char as Char import qualified Data.Char as Char
@ -87,12 +87,12 @@ import qualified GHC.OldList as List
import qualified Data.List as List import qualified Data.List as List
#endif #endif
import qualified Data.IntMap as IntMap -- import qualified Data.IntMap as IntMap
import qualified Data.IntMap.Strict as IntMapS -- import qualified Data.IntMap.Strict as IntMapS
import qualified Data.Map.Strict as MapS import qualified Data.Map.Strict as MapS
import qualified Data.Map.Lazy as MapL import qualified Data.Map.Lazy as MapL
import qualified Data.Sequence as Seq -- import qualified Data.Sequence as Seq
import qualified Data.Set as Set -- import qualified Data.Set as Set
import qualified Control.Monad.RWS.Class as RWS.Class import qualified Control.Monad.RWS.Class as RWS.Class
import qualified Control.Monad.Reader.Class as Reader.Class import qualified Control.Monad.Reader.Class as Reader.Class
@ -105,23 +105,14 @@ import qualified Control.Monad.Trans.State.Strict as StateS
import Data.Functor.Identity ( Identity(..) ) import Data.Functor.Identity ( Identity(..) )
import Control.Concurrent.Chan ( Chan ) import Control.Concurrent.Chan ( Chan )
import Control.Concurrent.MVar ( MVar ) -- import Control.Concurrent.MVar ( MVar )
import Data.Int ( Int ) -- import Control.Monad.ST ( ST )
import Data.Word ( Word ) -- import Data.IORef ( IORef )
import Prelude ( Integer, Float, Double )
import Control.Monad.ST ( ST )
import Data.Bool ( Bool(..) )
import Data.Char ( Char )
import Data.Either ( Either(..) )
import Data.IORef ( IORef )
import Data.Maybe ( Maybe(..) )
import Data.Monoid ( Endo(..), All(..), Any(..), Sum(..), Product(..), First(..), Last(..), Alt(..), ) import Data.Monoid ( Endo(..), All(..), Any(..), Sum(..), Product(..), First(..), Last(..), Alt(..), )
import Data.Ord ( Ordering(..), Down(..) ) -- import Data.Ord ( Ordering(..), Down(..) )
import Data.Ratio ( Ratio, Rational ) -- import Data.Ratio ( Ratio, Rational )
import Data.String ( String )
import Data.Void ( Void ) import Data.Void ( Void )
import System.IO ( IO ) -- import Data.Proxy ( Proxy(..) )
import Data.Proxy ( Proxy(..) )
import Data.Sequence ( Seq ) import Data.Sequence ( Seq )
import Data.Semigroup ( Semigroup(..) ) import Data.Semigroup ( Semigroup(..) )
@ -136,6 +127,7 @@ import Prelude ( Char
, String , String
, Int , Int
, Integer , Integer
, Word
, Float , Float
, Double , Double
, Bool (..) , Bool (..)
@ -192,6 +184,12 @@ import Prelude ( Char
, (^) , (^)
, Foldable , Foldable
, Traversable , Traversable
, mempty
, maybe
, Applicative(..)
, (<$)
, Monoid(..)
, either
) )
import Data.Foldable ( foldl' import Data.Foldable ( foldl'
@ -235,38 +233,31 @@ import Data.List ( partition
, uncons , uncons
) )
import Data.Tuple ( swap -- import Data.Tuple ( swap
) -- )
import Data.Char ( ord -- import Data.Char ( ord
, chr -- , chr
) -- )
import Data.Maybe ( fromMaybe -- import Data.Word ( Word32
, maybe -- )
, listToMaybe
, maybeToList
, catMaybes
)
import Data.Word ( Word32 -- import Data.Ord ( comparing
) -- , Down (..)
-- )
import Data.Ord ( comparing -- import Data.Either ( either
, Down (..) -- )
)
import Data.Either ( either -- import Data.Ratio ( Ratio
) -- , (%)
-- , numerator
-- , denominator
-- )
import Data.Ratio ( Ratio -- import Text.Read ( readMaybe
, (%) -- )
, numerator
, denominator
)
import Text.Read ( readMaybe
)
import Control.Monad ( Functor (..) import Control.Monad ( Functor (..)
, Monad (..) , Monad (..)
@ -301,56 +292,57 @@ import Control.Applicative ( Applicative (..)
, Alternative (..) , Alternative (..)
) )
import Foreign.Storable ( Storable ) -- import Foreign.Storable ( Storable )
import GHC.Exts ( Constraint ) -- import GHC.Exts ( Constraint )
import Control.Concurrent ( threadDelay -- import Control.Concurrent ( threadDelay
, forkIO -- , forkIO
, forkOS -- , forkOS
) -- )
import Control.Concurrent.MVar ( MVar -- import Control.Concurrent.MVar ( MVar
, newEmptyMVar -- , newEmptyMVar
, newMVar -- , newMVar
, putMVar -- , putMVar
, readMVar -- , readMVar
, takeMVar -- , takeMVar
, swapMVar -- , swapMVar
) -- )
import Control.Exception ( evaluate -- import Control.Exception ( evaluate
, bracket -- , bracket
, assert -- , assert
) -- )
import Debug.Trace ( trace -- import Debug.Trace ( trace
, traceId -- , traceId
, traceShowId -- , traceShowId
, traceShow -- , traceShow
, traceStack -- , traceStack
, traceShowId -- , traceShowId
, traceIO -- , traceIO
, traceM -- , traceM
, traceShowM -- , traceShowM
) -- )
import Foreign.ForeignPtr ( ForeignPtr -- import Foreign.ForeignPtr ( ForeignPtr
) -- )
import Data.Monoid ( Monoid -- import Data.Monoid ( Monoid
, mempty -- , mempty
, mconcat -- , mconcat
) -- )
import Data.Bifunctor ( bimap ) -- import Data.Bifunctor ( bimap )
import Data.Functor ( (<$), ($>) ) import Data.Functor ( (<$), ($>) )
import Data.Function ( (&) ) -- import Data.Function ( (&) )
import System.IO ( hFlush -- import System.IO ( hFlush
, stdout -- , stdout
) -- )
import Data.Typeable ( Typeable import Data.Typeable ( Typeable
, cast , cast
, Proxy(..)
) )
import Control.Arrow ( first import Control.Arrow ( first
@ -361,30 +353,30 @@ import Control.Arrow ( first
, (<<<) , (<<<)
) )
import Data.Functor.Identity ( Identity (..) -- import Data.Functor.Identity ( Identity (..)
) -- )
import Data.Proxy ( Proxy (..) -- import Data.Proxy ( Proxy (..)
) -- )
import Data.Version ( showVersion -- import Data.Version ( showVersion
) -- )
import Data.List.Extra ( nubOrd -- import Data.List.Extra ( nubOrd
, stripSuffix -- , stripSuffix
) -- )
import Control.Monad.Extra ( whenM -- import Control.Monad.Extra ( whenM
, unlessM -- , unlessM
, ifM -- , ifM
, notM -- , notM
, orM -- , orM
, andM -- , andM
, anyM -- , anyM
, allM -- , allM
) -- )
import Data.Tree ( Tree(..) -- import Data.Tree ( Tree(..)
) -- )
import Control.Monad.Trans.MultiRWS ( MonadMultiReader(..) import Control.Monad.Trans.MultiRWS ( MonadMultiReader(..)
, MonadMultiWriter(..) , MonadMultiWriter(..)
@ -392,19 +384,19 @@ import Control.Monad.Trans.MultiRWS ( MonadMultiReader(..)
, mGet , mGet
) )
import Control.Monad.Trans.MultiReader ( runMultiReaderTNil -- import Control.Monad.Trans.MultiReader ( runMultiReaderTNil
, runMultiReaderTNil_ -- , runMultiReaderTNil_
, MultiReaderT (..) -- , MultiReaderT (..)
, MultiReader -- , MultiReader
, MultiReaderTNull -- , MultiReaderTNull
) -- )
import Control.Monad.IO.Class ( MonadIO (..) -- import Control.Monad.IO.Class ( MonadIO (..)
) -- )
import Control.Monad.Trans.Class ( lift import Control.Monad.Trans.Class ( lift
) )
import Control.Monad.Trans.Maybe ( MaybeT (..) -- import Control.Monad.Trans.Maybe ( MaybeT (..)
) -- )
import Lens.Micro ( (<&>) import Lens.Micro ( (<&>)
) )