Copyright | (c) 2013 Leon P Smith |
---|---|
License | BSD3 |
Maintainer | https://github.com/blaze-builder |
Stability | stable |
Safe Haskell | Safe-Inferred |
Language | Haskell98 |
Conversions from the new Prims to the old Writes.
Synopsis
- data Write
- writePrimFixed :: FixedPrim a -> a -> Write
- writePrimBounded :: BoundedPrim a -> a -> Write
Documentation
A write of a bounded number of bytes.
When defining a function write :: a -> Write
for some a
, then it is
important to ensure that the bound on the number of bytes written is
data-independent. Formally,
forall x y. getBound (write x) = getBound (write y)
The idea is that this data-independent bound is specified such that the compiler can optimize the check, if there are enough free bytes in the buffer, to a single subtraction between the pointer to the next free byte and the pointer to the end of the buffer with this constant bound of the maximal number of bytes to be written.
writePrimFixed :: FixedPrim a -> a -> Write Source #
writePrimBounded :: BoundedPrim a -> a -> Write Source #