| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Development.Shake.Classes
Description
This module reexports the six necessary type classes that many rule types must support through ShakeValue.
You can use this module to define new rules without depending on the binary, deepseq and hashable packages.
Documentation
Conversion of values to readable Strings.
Derived instances of Show have the following properties, which
are compatible with derived instances of Read:
- The result of
showis a syntactically correct Haskell expression containing only constants, given the fixity declarations in force at the point where the type is declared. It contains only the constructor names defined in the data type, parentheses, and spaces. When labelled constructor fields are used, braces, commas, field names, and equal signs are also used. - If the constructor is defined to be an infix operator, then
showsPrecwill produce infix applications of the constructor. - the representation will be enclosed in parentheses if the
precedence of the top-level constructor in
xis less thand(associativity is ignored). Thus, ifdis0then the result is never surrounded in parentheses; ifdis11it is always surrounded in parentheses, unless it is an atomic expression. - If the constructor is defined using record syntax, then
showwill produce the record-syntax form, with the fields given in the same order as the original declaration.
For example, given the declarations
infixr 5 :^: data Tree a = Leaf a | Tree a :^: Tree a
the derived instance of Show is equivalent to
instance (Show a) => Show (Tree a) where
showsPrec d (Leaf m) = showParen (d > app_prec) $
showString "Leaf " . showsPrec (app_prec+1) m
where app_prec = 10
showsPrec d (u :^: v) = showParen (d > up_prec) $
showsPrec (up_prec+1) u .
showString " :^: " .
showsPrec (up_prec+1) v
where up_prec = 5Note that right-associativity of :^: is ignored. For example,
produces the stringshow(Leaf 1 :^: Leaf 2 :^: Leaf 3)"Leaf 1 :^: (Leaf 2 :^: Leaf 3)".
Methods
Arguments
| :: Int | the operator precedence of the enclosing
context (a number from |
| -> a | the value to be converted to a |
| -> ShowS |
Convert a value to a readable String.
showsPrec should satisfy the law
showsPrec d x r ++ s == showsPrec d x (r ++ s)
Derived instances of Read and Show satisfy the following:
That is, readsPrec parses the string produced by
showsPrec, and delivers the value that showsPrec started with.
Instances
| Show NestedAtomically | Since: base-4.0 |
Defined in Control.Exception.Base | |
| Show NoMatchingContinuationPrompt | Since: base-4.18 |
Defined in Control.Exception.Base | |
| Show NoMethodError | Since: base-4.0 |
Defined in Control.Exception.Base | |
| Show NonTermination | Since: base-4.0 |
Defined in Control.Exception.Base | |
| Show PatternMatchFail | Since: base-4.0 |
Defined in Control.Exception.Base | |
| Show RecConError | Since: base-4.0 |
Defined in Control.Exception.Base | |
| Show RecSelError | Since: base-4.0 |
Defined in Control.Exception.Base | |
| Show RecUpdError | Since: base-4.0 |
Defined in Control.Exception.Base | |
| Show TypeError | Since: base-4.9.0.0 |
| Show ByteArray | Since: base-4.17.0.0 |
| Show Constr | Since: base-4.0.0.0 |
| Show ConstrRep | Since: base-4.0.0.0 |
| Show DataRep | Since: base-4.0.0.0 |
| Show DataType | Since: base-4.0.0.0 |
| Show Fixity | Since: base-4.0.0.0 |
| Show Dynamic | Since: base-2.1 |
| Show All | Since: base-2.1 |
| Show Any | Since: base-2.1 |
| Show SomeTypeRep | Since: base-4.10.0.0 |
Defined in Data.Typeable.Internal | |
| Show Version | Since: base-2.1 |
| Show CBool | |
| Show CChar | |
| Show CClock | |
| Show CDouble | |
| Show CFloat | |
| Show CInt | |
| Show CIntMax | |
| Show CIntPtr | |
| Show CLLong | |
| Show CLong | |
| Show CPtrdiff | |
| Show CSChar | |
| Show CSUSeconds | |
Defined in Foreign.C.Types | |
| Show CShort | |
| Show CSigAtomic | |
Defined in Foreign.C.Types | |
| Show CSize | |
| Show CTime | |
| Show CUChar | |
| Show CUInt | |
| Show CUIntMax | |
| Show CUIntPtr | |
| Show CULLong | |
| Show CULong | |
| Show CUSeconds | |
| Show CUShort | |
| Show CWchar | |
| Show IntPtr | |
| Show WordPtr | |
| Show Void | Since: base-4.8.0.0 |
| Show BlockReason | Since: base-4.3.0.0 |
Defined in GHC.Conc.Sync | |
| Show ThreadId | Since: base-4.2.0.0 |
| Show ThreadStatus | Since: base-4.3.0.0 |
Defined in GHC.Conc.Sync | |
| Show ErrorCall | Since: base-4.0.0.0 |
| Show ArithException | Since: base-4.0.0.0 |
Defined in GHC.Exception.Type | |
| Show SomeException | Since: base-3.0 |
Defined in GHC.Exception.Type | |
| Show Associativity | Since: base-4.6.0.0 |
Defined in GHC.Generics | |
| Show DecidedStrictness | Since: base-4.9.0.0 |
Defined in GHC.Generics | |
| Show Fixity | Since: base-4.6.0.0 |
| Show SourceStrictness | Since: base-4.9.0.0 |
Defined in GHC.Generics | |
| Show SourceUnpackedness | Since: base-4.9.0.0 |
Defined in GHC.Generics | |
| Show MaskingState | Since: base-4.3.0.0 |
| Show SeekMode | Since: base-4.2.0.0 |
| Show CodingProgress | Since: base-4.4.0.0 |
Defined in GHC.IO.Encoding.Types | |
| Show TextEncoding | Since: base-4.3.0.0 |
Defined in GHC.IO.Encoding.Types | |
| Show AllocationLimitExceeded | Since: base-4.7.1.0 |
Defined in GHC.IO.Exception | |
| Show ArrayException | Since: base-4.1.0.0 |
Defined in GHC.IO.Exception | |
| Show AssertionFailed | Since: base-4.1.0.0 |
Defined in GHC.IO.Exception | |
| Show AsyncException | Since: base-4.1.0.0 |
Defined in GHC.IO.Exception | |
| Show BlockedIndefinitelyOnMVar | Since: base-4.1.0.0 |
Defined in GHC.IO.Exception | |
| Show BlockedIndefinitelyOnSTM | Since: base-4.1.0.0 |
Defined in GHC.IO.Exception | |
| Show CompactionFailed | Since: base-4.10.0.0 |
Defined in GHC.IO.Exception | |
| Show Deadlock | Since: base-4.1.0.0 |
| Show ExitCode | |
| Show FixIOException | Since: base-4.11.0.0 |
Defined in GHC.IO.Exception | |
| Show IOErrorType | Since: base-4.1.0.0 |
Defined in GHC.IO.Exception | |
| Show IOException | Since: base-4.1.0.0 |
Defined in GHC.IO.Exception | |
| Show SomeAsyncException | Since: base-4.7.0.0 |
Defined in GHC.IO.Exception | |
| Show HandlePosn | Since: base-4.1.0.0 |
Defined in GHC.IO.Handle | |
| Show BufferMode | Since: base-4.2.0.0 |
Defined in GHC.IO.Handle.Types | |
| Show Handle | Since: base-4.1.0.0 |
| Show HandleType | Since: base-4.1.0.0 |
Defined in GHC.IO.Handle.Types | |
| Show Newline | Since: base-4.3.0.0 |
| Show NewlineMode | Since: base-4.3.0.0 |
Defined in GHC.IO.Handle.Types | |
| Show IOMode | Since: base-4.2.0.0 |
| Show Int16 | Since: base-2.1 |
| Show Int32 | Since: base-2.1 |
| Show Int64 | Since: base-2.1 |
| Show Int8 | Since: base-2.1 |
| Show FractionalExponentBase | |
| Show CallStack | Since: base-4.9.0.0 |
| Show SrcLoc | Since: base-4.9.0.0 |
| Show GeneralCategory | Since: base-2.1 |
Defined in GHC.Unicode | |
| Show Word16 | Since: base-2.1 |
| Show Word32 | Since: base-2.1 |
| Show Word64 | Since: base-2.1 |
| Show Word8 | Since: base-2.1 |
| Show CBlkCnt | |
| Show CBlkSize | |
| Show CCc | |
| Show CClockId | |
| Show CDev | |
| Show CFsBlkCnt | |
| Show CFsFilCnt | |
| Show CGid | |
| Show CId | |
| Show CIno | |
| Show CKey | |
| Show CMode | |
| Show CNfds | |
| Show CNlink | |
| Show COff | |
| Show CPid | |
| Show CRLim | |
| Show CSocklen | |
| Show CSpeed | |
| Show CSsize | |
| Show CTcflag | |
| Show CTimer | |
| Show CUid | |
| Show Fd | |
| Show Lexeme | Since: base-2.1 |
| Show Number | Since: base-4.6.0.0 |
| Show ByteString | |
Defined in Data.ByteString.Internal.Type | |
| Show ByteString | |
Defined in Data.ByteString.Lazy.Internal | |
| Show ShortByteString | |
Defined in Data.ByteString.Short.Internal | |
| Show Clock | |
| Show TimeSpec | |
| Show IntSet | |
| Show FileType | |
| Show Permissions | |
Defined in System.Directory.Internal.Common | |
| Show XdgDirectory | |
Defined in System.Directory.Internal.Common | |
| Show XdgDirectoryList | |
Defined in System.Directory.Internal.Common | |
| Show Timeout | |
| Show OsChar | |
| Show OsString | On windows, decodes as UCS-2. On unix prints the raw bytes without decoding. |
| Show PosixChar | |
| Show PosixString | Prints the raw bytes without decoding. |
Defined in System.OsString.Internal.Types.Hidden | |
| Show WindowsChar | |
Defined in System.OsString.Internal.Types.Hidden | |
| Show WindowsString | Decodes as UCS-2. |
Defined in System.OsString.Internal.Types.Hidden | |
| Show Path | |
| Show Pattern | |
| Show Pat | |
| Show StepNext | |
| Show ForeignSrcLang | |
Defined in GHC.ForeignSrcLang.Type | |
| Show Extension | |
| Show KindRep | |
| Show Module | Since: base-4.9.0.0 |
| Show Ordering | Since: base-2.1 |
| Show TrName | Since: base-4.9.0.0 |
| Show TyCon | Since: base-2.1 |
| Show TypeLitSort | Since: base-4.11.0.0 |
| Show Flot | |
| Show OsChar | |
| Show OsString | |
| Show PosixChar | |
| Show PosixString | |
| Show WindowsChar | |
| Show WindowsString | |
| Show Mode | |
| Show Style | |
| Show TextDetails | |
Defined in Text.PrettyPrint.Annotated.HughesPJ | |
| Show Doc | |
| Show CmdSpec | |
| Show CreateProcess | |
Defined in System.Process.Common | |
| Show StdStream | |
| Show Cardinality | |
| Show StdGen | |
| Show CmdArgument Source # | |
Defined in Development.Shake.Command | |
| Show CmdOption Source # | |
| Show RunChanged Source # | |
Defined in Development.Shake.Internal.Core.Types | |
| Show RunMode Source # | |
| Show ShakeException Source # | |
Defined in Development.Shake.Internal.Errors | |
| Show Change Source # | |
| Show Lint Source # | |
| Show Progress Source # | |
| Show Rebuild Source # | |
| Show ShakeOptions Source # | |
Defined in Development.Shake.Internal.Options | |
| Show Verbosity Source # | |
| Show Resource Source # | |
| Show AnnLookup | |
| Show AnnTarget | |
| Show Bang | |
| Show Body | |
| Show Bytes | |
| Show Callconv | |
| Show Clause | |
| Show Con | |
| Show Dec | |
| Show DecidedStrictness | |
Defined in Language.Haskell.TH.Syntax | |
| Show DerivClause | |
Defined in Language.Haskell.TH.Syntax | |
| Show DerivStrategy | |
Defined in Language.Haskell.TH.Syntax | |
| Show DocLoc | |
| Show Exp | |
| Show FamilyResultSig | |
Defined in Language.Haskell.TH.Syntax | |
| Show Fixity | |
| Show FixityDirection | |
Defined in Language.Haskell.TH.Syntax | |
| Show Foreign | |
| Show FunDep | |
| Show Guard | |
| Show Info | |
| Show InjectivityAnn | |
Defined in Language.Haskell.TH.Syntax | |
| Show Inline | |
| Show Lit | |
| Show Loc | |
| Show Match | |
| Show ModName | |
| Show Module | |
| Show ModuleInfo | |
Defined in Language.Haskell.TH.Syntax | |
| Show Name | |
| Show NameFlavour | |
Defined in Language.Haskell.TH.Syntax | |
| Show NameSpace | |
| Show OccName | |
| Show Overlap | |
| Show Pat | |
| Show PatSynArgs | |
Defined in Language.Haskell.TH.Syntax | |
| Show PatSynDir | |
| Show Phases | |
| Show PkgName | |
| Show Pragma | |
| Show Range | |
| Show Role | |
| Show RuleBndr | |
| Show RuleMatch | |
| Show Safety | |
| Show SourceStrictness | |
Defined in Language.Haskell.TH.Syntax | |
| Show SourceUnpackedness | |
Defined in Language.Haskell.TH.Syntax | |
| Show Specificity | |
Defined in Language.Haskell.TH.Syntax | |
| Show Stmt | |
| Show TyLit | |
| Show TySynEqn | |
| Show Type | |
| Show TypeFamilyHead | |
Defined in Language.Haskell.TH.Syntax | |
| Show CalendarDiffDays | |
Defined in Data.Time.Calendar.CalendarDiffDays | |
| Show DayOfWeek | |
| Show DiffTime | |
| Show NominalDiffTime | |
Defined in Data.Time.Clock.Internal.NominalDiffTime | |
| Show TimeLocale | |
Defined in Data.Time.Format.Locale | |
| Show CalendarDiffTime | |
| Show LocalTime | |
| Show TimeOfDay | |
| Show TimeZone | This only shows the time zone name, or offset if the name is empty. |
| Show ZonedTime | For the time zone, this only shows the name, or offset if the name is empty. |
| Show CAttributes | |
Defined in System.Posix.Files.Common | |
| Show StatxFlags | |
Defined in System.Posix.Files.Common | |
| Show StatxMask | |
| Show OpenFileFlags | |
Defined in System.Posix.IO.Common | |
| Show OpenMode | |
| Show Integer | Since: base-2.1 |
| Show Natural | Since: base-4.8.0.0 |
| Show () | Since: base-2.1 |
| Show Bool | Since: base-2.1 |
| Show Char | Since: base-2.1 |
| Show Int | Since: base-2.1 |
| Show Levity | Since: base-4.15.0.0 |
| Show RuntimeRep | Since: base-4.11.0.0 |
| Show VecCount | Since: base-4.11.0.0 |
| Show VecElem | Since: base-4.11.0.0 |
| Show Word | Since: base-2.1 |
| Show a => Show (ZipList a) | Since: base-4.7.0.0 |
| Show a => Show (And a) | Since: base-4.16 |
| Show a => Show (Iff a) | Since: base-4.16 |
| Show a => Show (Ior a) | Since: base-4.16 |
| Show a => Show (Xor a) | Since: base-4.16 |
| Show a => Show (Complex a) | Since: base-2.1 |
| Show a => Show (First a) | Since: base-2.1 |
| Show a => Show (Last a) | Since: base-2.1 |
| Show a => Show (Down a) | This instance would be equivalent to the derived instances of the
Since: base-4.7.0.0 |
| Show a => Show (First a) | Since: base-4.9.0.0 |
| Show a => Show (Last a) | Since: base-4.9.0.0 |
| Show a => Show (Max a) | Since: base-4.9.0.0 |
| Show a => Show (Min a) | Since: base-4.9.0.0 |
| Show m => Show (WrappedMonoid m) | Since: base-4.9.0.0 |
Defined in Data.Semigroup | |
| Show a => Show (Dual a) | Since: base-2.1 |
| Show a => Show (Product a) | Since: base-2.1 |
| Show a => Show (Sum a) | Since: base-2.1 |
| Show a => Show (NonEmpty a) | Since: base-4.11.0.0 |
| Show (ForeignPtr a) | Since: base-2.1 |
Defined in GHC.ForeignPtr | |
| Show p => Show (Par1 p) | Since: base-4.7.0.0 |
| Show (FunPtr a) | Since: base-2.1 |
| Show (Ptr a) | Since: base-2.1 |
| Show a => Show (Ratio a) | Since: base-2.0.1 |
| Show a => Show (Decoder a) | |
| Show a => Show (IntMap a) | |
| Show a => Show (Seq a) | |
| Show a => Show (ViewL a) | |
| Show a => Show (ViewR a) | |
| Show a => Show (Intersection a) | |
Defined in Data.Set.Internal | |
| Show a => Show (Set a) | |
| Show a => Show (Tree a) | |
| Show a => Show (RB a) | |
| Show a => Show (Hashed a) | |
| Show a => Show (Forest a) | |
| Show a => Show (Heap a) | |
| Show a => Show (Tree a) | |
| Show a => Show (AnnotDetails a) | |
Defined in Text.PrettyPrint.Annotated.HughesPJ | |
| Show (Doc a) | |
| Show a => Show (Span a) | |
| Show a => Show (Array a) | |
| Show g => Show (StateGen g) | |
| Show a => Show (FSATrace a) Source # | |
| Show flag => Show (TyVarBndr flag) | |
| Show a => Show (Array a) | |
| Show a => Show (HashSet a) | |
| Show a => Show (Maybe a) | Since: base-2.1 |
| Show a => Show (a) | Since: base-4.15 |
| Show a => Show [a] | Since: base-2.1 |
| (Show a, Show b) => Show (Either a b) | Since: base-3.0 |
| HasResolution a => Show (Fixed a) | Since: base-2.1 |
| Show (Proxy s) | Since: base-4.7.0.0 |
| (Show a, Show b) => Show (Arg a b) | Since: base-4.9.0.0 |
| Show (TypeRep a) | |
| Show (U1 p) | Since: base-4.9.0.0 |
| Show (V1 p) | Since: base-4.9.0.0 |
| Show (ST s a) | Since: base-2.1 |
| (Show k, Show a) => Show (Map k a) | |
| (Show p, Show a) => Show (Entry p a) | |
| (Show1 m, Show a) => Show (MaybeT m a) | |
| (Show k, Show v) => Show (HashMap k v) | |
| (Show a, Show b) => Show (a, b) | Since: base-2.1 |
| Show a => Show (Const a b) | This instance would be equivalent to the derived instances of the
Since: base-4.8.0.0 |
| Show (f a) => Show (Ap f a) | Since: base-4.12.0.0 |
| Show (f a) => Show (Alt f a) | Since: base-4.8.0.0 |
| Show (a :~: b) | Since: base-4.7.0.0 |
| Show (f p) => Show (Rec1 f p) | Since: base-4.7.0.0 |
| Show (URec Char p) | Since: base-4.9.0.0 |
| Show (URec Double p) | Since: base-4.9.0.0 |
| Show (URec Float p) | |
| Show (URec Int p) | Since: base-4.9.0.0 |
| Show (URec Word p) | Since: base-4.9.0.0 |
| (Show e, Show1 m, Show a) => Show (ExceptT e m a) | |
| (Show1 f, Show a) => Show (IdentityT f a) | |
| (Show w, Show1 m, Show a) => Show (WriterT w m a) | |
| (Show w, Show1 m, Show a) => Show (WriterT w m a) | |
| (Show a, Show b, Show c) => Show (a, b, c) | Since: base-2.1 |
| (Show (f a), Show (g a)) => Show (Product f g a) | Since: base-4.18.0.0 |
| (Show (f a), Show (g a)) => Show (Sum f g a) | Since: base-4.18.0.0 |
| Show (a :~~: b) | Since: base-4.10.0.0 |
| (Show (f p), Show (g p)) => Show ((f :*: g) p) | Since: base-4.7.0.0 |
| (Show (f p), Show (g p)) => Show ((f :+: g) p) | Since: base-4.7.0.0 |
| Show c => Show (K1 i c p) | Since: base-4.7.0.0 |
| (Show a, Show b, Show c, Show d) => Show (a, b, c, d) | Since: base-2.1 |
| Show (f (g a)) => Show (Compose f g a) | Since: base-4.18.0.0 |
| Show (f (g p)) => Show ((f :.: g) p) | Since: base-4.7.0.0 |
| Show (f p) => Show (M1 i c f p) | Since: base-4.7.0.0 |
| (Show a, Show b, Show c, Show d, Show e) => Show (a, b, c, d, e) | Since: base-2.1 |
| (Show a, Show b, Show c, Show d, Show e, Show f) => Show (a, b, c, d, e, f) | Since: base-2.1 |
| (Show a, Show b, Show c, Show d, Show e, Show f, Show g) => Show (a, b, c, d, e, f, g) | Since: base-2.1 |
| (Show a, Show b, Show c, Show d, Show e, Show f, Show g, Show h) => Show (a, b, c, d, e, f, g, h) | Since: base-2.1 |
| (Show a, Show b, Show c, Show d, Show e, Show f, Show g, Show h, Show i) => Show (a, b, c, d, e, f, g, h, i) | Since: base-2.1 |
| (Show a, Show b, Show c, Show d, Show e, Show f, Show g, Show h, Show i, Show j) => Show (a, b, c, d, e, f, g, h, i, j) | Since: base-2.1 |
| (Show a, Show b, Show c, Show d, Show e, Show f, Show g, Show h, Show i, Show j, Show k) => Show (a, b, c, d, e, f, g, h, i, j, k) | Since: base-2.1 |
| (Show a, Show b, Show c, Show d, Show e, Show f, Show g, Show h, Show i, Show j, Show k, Show l) => Show (a, b, c, d, e, f, g, h, i, j, k, l) | Since: base-2.1 |
| (Show a, Show b, Show c, Show d, Show e, Show f, Show g, Show h, Show i, Show j, Show k, Show l, Show m) => Show (a, b, c, d, e, f, g, h, i, j, k, l, m) | Since: base-2.1 |
| (Show a, Show b, Show c, Show d, Show e, Show f, Show g, Show h, Show i, Show j, Show k, Show l, Show m, Show n) => Show (a, b, c, d, e, f, g, h, i, j, k, l, m, n) | Since: base-2.1 |
| (Show a, Show b, Show c, Show d, Show e, Show f, Show g, Show h, Show i, Show j, Show k, Show l, Show m, Show n, Show o) => Show (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) | Since: base-2.1 |
class Typeable (a :: k) Source #
The class Typeable allows a concrete representation of a type to
be calculated.
Minimal complete definition
typeRep#
The Eq class defines equality (==) and inequality (/=).
All the basic datatypes exported by the Prelude are instances of Eq,
and Eq may be derived for any datatype whose constituents are also
instances of Eq.
The Haskell Report defines no laws for Eq. However, instances are
encouraged to follow these properties:
Instances
class Eq a => Hashable a where Source #
The class of types that can be converted to a hash value.
Minimal implementation: hashWithSalt.
Note: the hash is not guaranteed to be stable across library versions, operating systems or architectures. For stable hashing use named hashes: SHA256, CRC32 etc.
If you are looking for Hashable instance in time package,
check time-compat
Minimal complete definition
Nothing
Methods
hashWithSalt :: Int -> a -> Int infixl 0 Source #
Return a hash value for the argument, using the given salt.
The general contract of hashWithSalt is:
- If two values are equal according to the
==method, then applying thehashWithSaltmethod on each of the two values must produce the same integer result if the same salt is used in each case. - It is not required that if two values are unequal
according to the
==method, then applying thehashWithSaltmethod on each of the two values must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal values may improve the performance of hashing-based data structures. - This method can be used to compute different hash values for
the same input by providing a different salt in each
application of the method. This implies that any instance
that defines
hashWithSaltmust make use of the salt in its implementation. hashWithSaltmay return negativeIntvalues.
Like hashWithSalt, but no salt is used. The default
implementation uses hashWithSalt with some default salt.
Instances might want to implement this method to provide a more
efficient implementation than the default implementation.
Instances
The Binary class provides put and get, methods to encode and
decode a Haskell value to a lazy ByteString. It mirrors the Read and
Show classes for textual representation of Haskell types, and is
suitable for serialising Haskell values to disk, over the network.
For decoding and generating simple external binary formats (e.g. C
structures), Binary may be used, but in general is not suitable
for complex protocols. Instead use the PutM and Get primitives
directly.
Instances of Binary should satisfy the following property:
decode . encode == id
That is, the get and put methods should be the inverse of each
other. A range of instances are provided for basic Haskell types.
Minimal complete definition
Nothing
Methods
Encode a value in the Put monad.
Decode a value in the Get monad
putList :: [t] -> Put Source #
Encode a list of values in the Put monad. The default implementation may be overridden to be more efficient but must still have the same encoding format.
Instances
A class of types that can be fully evaluated.
Since: deepseq-1.1.0.0
Minimal complete definition
Nothing
Methods
rnf should reduce its argument to normal form (that is, fully
evaluate all sub-components), and then return ().
Generic NFData deriving
Starting with GHC 7.2, you can automatically derive instances
for types possessing a Generic instance.
Note: Generic1 can be auto-derived starting with GHC 7.4
{-# LANGUAGE DeriveGeneric #-}
import GHC.Generics (Generic, Generic1)
import Control.DeepSeq
data Foo a = Foo a String
deriving (Eq, Generic, Generic1)
instance NFData a => NFData (Foo a)
instance NFData1 Foo
data Colour = Red | Green | Blue
deriving Generic
instance NFData ColourStarting with GHC 7.10, the example above can be written more
concisely by enabling the new DeriveAnyClass extension:
{-# LANGUAGE DeriveGeneric, DeriveAnyClass #-}
import GHC.Generics (Generic)
import Control.DeepSeq
data Foo a = Foo a String
deriving (Eq, Generic, Generic1, NFData, NFData1)
data Colour = Red | Green | Blue
deriving (Generic, NFData)
Compatibility with previous deepseq versions
Prior to version 1.4.0.0, the default implementation of the rnf
method was defined as
rnfa =seqa ()
However, starting with deepseq-1.4.0.0, the default
implementation is based on DefaultSignatures allowing for
more accurate auto-derived NFData instances. If you need the
previously used exact default rnf method implementation
semantics, use
instance NFData Colour where rnf x = seq x ()
or alternatively
instance NFData Colour where rnf = rwhnf
or
{-# LANGUAGE BangPatterns #-}
instance NFData Colour where rnf !_ = ()