poke is:exact

Write the given value to the given memory location. Alignment restrictions might apply; see peek.
Serializes a value to bytes. It is the responsibility of the caller to ensure that at least the number of bytes required by size are available. These details are handled by encode and similar utilities.
Serializes a value to bytes. It is the responsibility of the caller to ensure that at least the number of bytes required by size are available. These details are handled by encode and similar utilities.
Write a Vector to a contiguous piece of memory.
Unbox a Haskell type and append the resulting bytes to a mutable byte array. The array is grown exponentially when more space is needed. Like snoc except that the value is unboxed to the byte array. Note: If you are serializing a large number of small fields, and the types are statically known, then it may be more efficient to declare a record of those fields and derive an Unbox instance of the entire record.
Write to memory
Just like peek, except if both the "test" and the "fail" validators fail, their results are mappended (<>).

Example

>>> let failV = failIf ["I'm less than 3"] (<3)

>>> let passV = failIf ["I'm greater than 4"] (>4)

>>> let testV = failIf ["I'm not divisible by 2"] odd

>>> let exV = poke failV passV testV
>>> validateP exV 7
Left (Valid 7)
>>> validateP exV 6
Right ["I'm greater than 4"]
>>> validateP exV 2
Left (Valid 2)
>>> validateP exV 1
Right ["I'm not divisible by 2","I'm less than 3"]
Not on Stackage, so not searched. Discord verification bot