module Proteome.Data.Replace where

import Prelude hiding (lines)
import Ribosome (ScratchState)

import Proteome.Data.GrepOutputLine (GrepOutputLine)

data Replace =
  Replace {
    Replace -> ScratchState
scratch :: ScratchState,
    Replace -> NonEmpty GrepOutputLine
lines :: NonEmpty GrepOutputLine
  }
  deriving stock (Replace -> Replace -> Bool
(Replace -> Replace -> Bool)
-> (Replace -> Replace -> Bool) -> Eq Replace
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Replace -> Replace -> Bool
$c/= :: Replace -> Replace -> Bool
== :: Replace -> Replace -> Bool
$c== :: Replace -> Replace -> Bool
Eq, Int -> Replace -> ShowS
[Replace] -> ShowS
Replace -> String
(Int -> Replace -> ShowS)
-> (Replace -> String) -> ([Replace] -> ShowS) -> Show Replace
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Replace] -> ShowS
$cshowList :: [Replace] -> ShowS
show :: Replace -> String
$cshow :: Replace -> String
showsPrec :: Int -> Replace -> ShowS
$cshowsPrec :: Int -> Replace -> ShowS
Show, (forall x. Replace -> Rep Replace x)
-> (forall x. Rep Replace x -> Replace) -> Generic Replace
forall x. Rep Replace x -> Replace
forall x. Replace -> Rep Replace x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Replace x -> Replace
$cfrom :: forall x. Replace -> Rep Replace x
Generic)