diff options
author | Justin Bedo <cu@cua0.org> | 2023-08-03 16:25:16 +1000 |
---|---|---|
committer | Justin Bedo <cu@cua0.org> | 2023-08-03 23:34:27 +1000 |
commit | 04685332602ebcb6c0429026aa1def55f4c8c483 (patch) | |
tree | 23dd44766e5d5206aafa9187187cae16872e3808 | |
parent | ae32b54617ab7bd5d24764d0d85a7a08a9e8d461 (diff) |
tidy code
-rw-r--r-- | Data/FastQ.hs | 7 | ||||
-rw-r--r-- | dedumi.hs | 10 | ||||
-rw-r--r-- | package.yaml | 5 |
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) @@ -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 |