{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE UndecidableInstances #-} module HaskellWorks.Data.Dsv.Strict.Cursor.Type ( DsvCursor(..) ) where import Control.DeepSeq import Data.Word import GHC.Generics import HaskellWorks.Data.Container data DsvCursor t s = DsvCursor { DsvCursor t s -> Elem t dsvCursorDelimiter :: Elem t , DsvCursor t s -> t dsvCursorText :: !t , DsvCursor t s -> s dsvCursorMarkers :: !s , DsvCursor t s -> s dsvCursorNewlines :: !s , DsvCursor t s -> Word64 dsvCursorPosition :: !Word64 } deriving (forall x. DsvCursor t s -> Rep (DsvCursor t s) x) -> (forall x. Rep (DsvCursor t s) x -> DsvCursor t s) -> Generic (DsvCursor t s) forall x. Rep (DsvCursor t s) x -> DsvCursor t s forall x. DsvCursor t s -> Rep (DsvCursor t s) x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall t s x. Rep (DsvCursor t s) x -> DsvCursor t s forall t s x. DsvCursor t s -> Rep (DsvCursor t s) x $cto :: forall t s x. Rep (DsvCursor t s) x -> DsvCursor t s $cfrom :: forall t s x. DsvCursor t s -> Rep (DsvCursor t s) x Generic deriving instance (Eq (Elem t), Eq t, Eq s) => Eq (DsvCursor t s) deriving instance (Show (Elem t), Show t, Show s) => Show (DsvCursor t s) instance (NFData t, NFData (Elem t), NFData s) => NFData (DsvCursor t s)