-- | SysZOpMemStruct spec
syszOpMemStructSpec :: Spec
syszOpMemStructSpec = describe "Storable SysZOpMemStruct" $ do
    it "has a memory layout we can handle" $
        sizeOf (undefined :: SysZOpMemStruct) == 2 + 6 + 8 * 2
    it "has matching peek- and poke-implementations" $ property $
        \s@SysZOpMemStruct{} ->
            alloca (\p -> poke p s >> peek p) `shouldReturn` s
    it "parses correctly" $ getSyszOpMemStruct `shouldReturn` syszOpMemStruct
syszOpMemStructSpec :: Spec
syszOpMemStructSpec = describe "Storable SysZOpMemStruct" $ do
    it "has a memory layout we can handle" $
        sizeOf (undefined :: SysZOpMemStruct) == 2 + 6 + 8 * 2
    it "has matching peek- and poke-implementations" $ property $
        \s@SysZOpMemStruct{} ->
            alloca (\p -> poke p s >> peek p) `shouldReturn` s
    it "parses correctly" $ getSyszOpMemStruct `shouldReturn` syszOpMemStruct
syszOpMemStructSpec = describe "Storable SysZOpMemStruct" $ do
    it "has a memory layout we can handle" $
        sizeOf (undefined :: SysZOpMemStruct) == 2 + 6 + 8 * 2
    it "has matching peek- and poke-implementations" $ property $
        \s@SysZOpMemStruct{} ->
            alloca (\p -> poke p s >> peek p) `shouldReturn` s
    it "parses correctly" $ getSyszOpMemStruct `shouldReturn` syszOpMemStruct