summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Bedo <cu@cua0.org>2023-08-03 16:25:16 +1000
committerJustin Bedo <cu@cua0.org>2023-08-03 23:34:27 +1000
commit04685332602ebcb6c0429026aa1def55f4c8c483 (patch)
tree23dd44766e5d5206aafa9187187cae16872e3808
parentae32b54617ab7bd5d24764d0d85a7a08a9e8d461 (diff)
tidy code
-rw-r--r--Data/FastQ.hs7
-rw-r--r--dedumi.hs10
-rw-r--r--package.yaml5
3 files changed, 11 insertions, 11 deletions
diff --git a/Data/FastQ.hs b/Data/FastQ.hs
index 217d58a..850ac5c 100644
--- a/Data/FastQ.hs
+++ b/Data/FastQ.hs
@@ -3,33 +3,30 @@
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE ViewPatterns #-}
+{-# OPTIONS_GHC -Wno-incomplete-uni-patterns #-}
module Data.FastQ where
import Codec.Compression.GZip
-import Data.Bifunctor (bimap)
import Control.Monad
import Control.Monad.IO.Class (MonadIO, liftIO)
+import Data.Bifunctor (bimap)
import Data.ByteString (ByteString)
import qualified Data.ByteString as B
import qualified Data.ByteString.Char8 as BC
import qualified Data.ByteString.Lazy as BSL
import qualified Data.ByteString.Lazy.Internal as BSL
import Data.Function
-import Data.Void
import Data.Word (Word8)
-import Debug.Trace
import Lens.Micro
import Lens.Micro.TH
import Streamly.Data.Array (Array)
-import Streamly.Data.Fold as F
import Streamly.Data.Stream (Stream)
import qualified Streamly.Data.Stream as S
import qualified Streamly.External.ByteString as SB
import Streamly.Internal.Data.Stream.Chunked as AS
import Streamly.Internal.Data.Stream.StreamD.Type (Step (..))
import Streamly.Internal.Data.Unfold.Type (Unfold (..))
-import qualified Streamly.Internal.FileSystem.File as File
import System.IO
import System.IO.Unsafe (unsafeInterleaveIO)
import Prelude hiding (Read)
diff --git a/dedumi.hs b/dedumi.hs
index 7bf6dd4..31fd9fe 100644
--- a/dedumi.hs
+++ b/dedumi.hs
@@ -3,6 +3,7 @@
{-# LANGUAGE NumericUnderscores #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
+{-# OPTIONS_GHC -Wno-orphans #-}
module Main where
@@ -11,7 +12,8 @@ import qualified Data.ByteString as B
import Data.Cuckoo
import Data.FastQ
import Data.Function
-import Data.Typeable
+import GHC.Prim (RealWorld)
+import GHC.TypeLits
import Lens.Micro
import qualified Streamly.Data.Stream as S
import System.Environment
@@ -22,8 +24,10 @@ instance CuckooFilterHash ByteString where
{-# INLINE cuckooHash #-}
{-# INLINE cuckooFingerprint #-}
+umiLength :: Int
umiLength = 8
+trim :: ReadPair -> ReadPair
trim x =
x
& _1 . nucs %~ B.drop umiLength
@@ -31,6 +35,7 @@ trim x =
& _1 . qual %~ B.drop umiLength
& _2 . qual %~ B.drop umiLength
+insert' :: (KnownNat b, KnownNat f) => CuckooFilter RealWorld b f ByteString -> ReadPair -> IO Bool
insert' f x =
let y = B.take umiLength (x ^. _1 . nucs) <> B.take umiLength (x ^. _2 . nucs)
in member f y >>= \case
@@ -40,6 +45,7 @@ insert' f x =
True -> pure False
False -> error "filter full"
+main :: IO ()
main = do
[p1, p2, p3, p4] <- getArgs
@@ -49,5 +55,3 @@ main = do
& S.filterM (insert' f)
& fmap trim
& unparse p3 p4
-
- pure ()
diff --git a/package.yaml b/package.yaml
index 4996d83..27d1ca9 100644
--- a/package.yaml
+++ b/package.yaml
@@ -9,13 +9,12 @@ dependencies:
- microlens
- bytestring
- streamly-bytestring
- - streamly
- streamly-core
- - streamly-archive
+ - ghc-prim
executables:
dedumi:
main: dedumi.hs
- ghc-options: [-O2, -fspec-constr-recursive=10, -fmax-worker-args=16, -fplugin=Fusion.Plugin]
+ ghc-options: [-O2, -fspec-constr-recursive=10, -fmax-worker-args=16, -fplugin=Fusion.Plugin, -Wall, -Wno-name-shadowing]
other-modules:
- Data.FastQ