úÎ} ,     peek skeleton ptr fills the skeleton) with data read from memory beginning at ptr. *The skeleton is needed formally for using . 3For instance when reading a list, it is not clear, !how many elements shall be read. 1Using the skeleton you can give this information Kand you also provide information that is not contained in the element type a. For example you can call   peek (replicate 10 ()) ptr 0for reading 10 elements from memory starting at ptr. Like  but uses pure! for construction of the result. pure would be in class Pointed if that would exist. $Thus we use the closest approximate  Applicative.  !"#$%&' ( )*+,    -           !"storable-record-0.0.2.2Foreign.Storable.NewtypeForeign.Storable.TraversableForeign.Storable.RecordForeign.Storable.FixedArray(Foreign.Storable.TraversableUnequalSizessizeOf alignmentpeekpokepeekApplicativeAccess DictionaryelementrunroundUp sizeOfArraypokeNextpeekNext elementTypebaseData.Traversable Traversable peekState pokeState getOffset advanceOffset AlignmentBoxpeek_poke_sizeOf_ alignment_ptrBox