module SLynx.SLynx
( slynx,
rSLynx,
)
where
import ELynx.Tools
import SLynx.Concatenate.Concatenate
import SLynx.Examine.Examine
import SLynx.Filter.Filter
import SLynx.Options
import SLynx.Simulate.Simulate
import SLynx.SubSample.SubSample
import SLynx.Translate.Translate
slynx :: Arguments CommandArguments -> IO ()
slynx :: Arguments CommandArguments -> IO ()
slynx Arguments CommandArguments
c = case Arguments CommandArguments -> CommandArguments
forall a. Arguments a -> a
local Arguments CommandArguments
c of
Concatenate ConcatenateArguments
_ ->
Arguments CommandArguments
-> (Arguments CommandArguments -> Arguments ConcatenateArguments)
-> ELynx ConcatenateArguments ()
-> IO ()
forall a b.
(Eq a, Show a, Reproducible a, ToJSON a) =>
Arguments a -> (Arguments a -> Arguments b) -> ELynx b () -> IO ()
eLynxWrapper
Arguments CommandArguments
c
(\(Arguments GlobalArguments
g (Concatenate ConcatenateArguments
l)) -> GlobalArguments
-> ConcatenateArguments -> Arguments ConcatenateArguments
forall a. GlobalArguments -> a -> Arguments a
Arguments GlobalArguments
g ConcatenateArguments
l)
ELynx ConcatenateArguments ()
concatenateCmd
Examine ExamineArguments
_ ->
Arguments CommandArguments
-> (Arguments CommandArguments -> Arguments ExamineArguments)
-> ELynx ExamineArguments ()
-> IO ()
forall a b.
(Eq a, Show a, Reproducible a, ToJSON a) =>
Arguments a -> (Arguments a -> Arguments b) -> ELynx b () -> IO ()
eLynxWrapper Arguments CommandArguments
c (\(Arguments GlobalArguments
g (Examine ExamineArguments
l)) -> GlobalArguments -> ExamineArguments -> Arguments ExamineArguments
forall a. GlobalArguments -> a -> Arguments a
Arguments GlobalArguments
g ExamineArguments
l) ELynx ExamineArguments ()
examineCmd
FilterCols FilterColsArguments
_ ->
Arguments CommandArguments
-> (Arguments CommandArguments -> Arguments FilterColsArguments)
-> ELynx FilterColsArguments ()
-> IO ()
forall a b.
(Eq a, Show a, Reproducible a, ToJSON a) =>
Arguments a -> (Arguments a -> Arguments b) -> ELynx b () -> IO ()
eLynxWrapper
Arguments CommandArguments
c
(\(Arguments GlobalArguments
g (FilterCols FilterColsArguments
l)) -> GlobalArguments
-> FilterColsArguments -> Arguments FilterColsArguments
forall a. GlobalArguments -> a -> Arguments a
Arguments GlobalArguments
g FilterColsArguments
l)
ELynx FilterColsArguments ()
filterColsCmd
FilterRows FilterRowsArguments
_ ->
Arguments CommandArguments
-> (Arguments CommandArguments -> Arguments FilterRowsArguments)
-> ELynx FilterRowsArguments ()
-> IO ()
forall a b.
(Eq a, Show a, Reproducible a, ToJSON a) =>
Arguments a -> (Arguments a -> Arguments b) -> ELynx b () -> IO ()
eLynxWrapper
Arguments CommandArguments
c
(\(Arguments GlobalArguments
g (FilterRows FilterRowsArguments
l)) -> GlobalArguments
-> FilterRowsArguments -> Arguments FilterRowsArguments
forall a. GlobalArguments -> a -> Arguments a
Arguments GlobalArguments
g FilterRowsArguments
l)
ELynx FilterRowsArguments ()
filterRowsCmd
Simulate SimulateArguments
_ ->
Arguments CommandArguments
-> (Arguments CommandArguments -> Arguments SimulateArguments)
-> ELynx SimulateArguments ()
-> IO ()
forall a b.
(Eq a, Show a, Reproducible a, ToJSON a) =>
Arguments a -> (Arguments a -> Arguments b) -> ELynx b () -> IO ()
eLynxWrapper Arguments CommandArguments
c (\(Arguments GlobalArguments
g (Simulate SimulateArguments
l)) -> GlobalArguments -> SimulateArguments -> Arguments SimulateArguments
forall a. GlobalArguments -> a -> Arguments a
Arguments GlobalArguments
g SimulateArguments
l) ELynx SimulateArguments ()
simulateCmd
SubSample SubSampleArguments
_ ->
Arguments CommandArguments
-> (Arguments CommandArguments -> Arguments SubSampleArguments)
-> ELynx SubSampleArguments ()
-> IO ()
forall a b.
(Eq a, Show a, Reproducible a, ToJSON a) =>
Arguments a -> (Arguments a -> Arguments b) -> ELynx b () -> IO ()
eLynxWrapper
Arguments CommandArguments
c
(\(Arguments GlobalArguments
g (SubSample SubSampleArguments
l)) -> GlobalArguments
-> SubSampleArguments -> Arguments SubSampleArguments
forall a. GlobalArguments -> a -> Arguments a
Arguments GlobalArguments
g SubSampleArguments
l)
ELynx SubSampleArguments ()
subSampleCmd
Translate TranslateArguments
_ ->
Arguments CommandArguments
-> (Arguments CommandArguments -> Arguments TranslateArguments)
-> ELynx TranslateArguments ()
-> IO ()
forall a b.
(Eq a, Show a, Reproducible a, ToJSON a) =>
Arguments a -> (Arguments a -> Arguments b) -> ELynx b () -> IO ()
eLynxWrapper
Arguments CommandArguments
c
(\(Arguments GlobalArguments
g (Translate TranslateArguments
l)) -> GlobalArguments
-> TranslateArguments -> Arguments TranslateArguments
forall a. GlobalArguments -> a -> Arguments a
Arguments GlobalArguments
g TranslateArguments
l)
ELynx TranslateArguments ()
translateCmd
rSLynx :: IO ()
rSLynx :: IO ()
rSLynx = IO (Arguments CommandArguments)
forall a. Reproducible a => IO (Arguments a)
parseArguments IO (Arguments CommandArguments)
-> (Arguments CommandArguments -> IO ()) -> IO ()
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= Arguments CommandArguments -> IO ()
slynx