{-# INCLUDE "Tuples.h" #-} {-# LINE 1 ".\Tuples.hsc" #-} {-# LANGUAGE FlexibleInstances #-} {-# LINE 2 ".\Tuples.hsc" #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE TypeSynonymInstances #-} {-# LANGUAGE ForeignFunctionInterface #-} ----------------------------------------------------------------------------- -- | -- Module : Windll -- Copyright : (c) Tamar Christina 2009 - 2010 -- License : BSD3 -- -- Maintainer : tamar@zhox.com -- Stability : experimental -- Portability : portable -- -- Module containing definitions for tuples, since those can't be automatically -- translated. We This file contains predefined mappings of tuples till 8-tuples. -- If you need more you need to unfortunately add these yourself -- ----------------------------------------------------------------------------- module WinDll.Lib.Tuples where import WinDll.Lib.NativeMapping import Foreign import Foreign.C import Foreign.Ptr import Foreign.Marshal.Alloc import Foreign.Marshal.Utils import Control.Monad import Control.Monad.Instances {-# LINE 36 ".\Tuples.hsc" #-} {-# LINE 38 ".\Tuples.hsc" #-} -- * The datatypes to replace the tupples with data Tuple2 a b = Tuple2 a b data Tuple3 a b c = Tuple3 a b c data Tuple4 a b c d = Tuple4 a b c d data Tuple5 a b c d e = Tuple5 a b c d e data Tuple6 a b c d e f = Tuple6 a b c d e f data Tuple7 a b c d e f g = Tuple7 a b c d e f g data Tuple8 a b c d e f g h = Tuple8 a b c d e f g h -- * Type namings type Tuple2Ptr a b = Ptr (Tuple2 a b) type Tuple3Ptr a b c = Ptr (Tuple3 a b c) type Tuple4Ptr a b c d = Ptr (Tuple4 a b c d) type Tuple5Ptr a b c d e = Ptr (Tuple5 a b c d e) type Tuple6Ptr a b c d e f = Ptr (Tuple6 a b c d e f) type Tuple7Ptr a b c d e f g = Ptr (Tuple7 a b c d e f g) type Tuple8Ptr a b c d e f g h = Ptr (Tuple8 a b c d e f g h) -- * Functor instances so that these new tuple types can -- fit into the functor instance of the FFIType class. instance Storable a => Functor (Tuple2 a) where fmap f (Tuple2 a b) = Tuple2 a (f b) instance Storable a => Functor (Tuple3 a b) where fmap f (Tuple3 a b c) = Tuple3 a b (f c) instance Storable a => Functor (Tuple4 a b c) where fmap f (Tuple4 a b c d) = Tuple4 a b c (f d) instance Storable a => Functor (Tuple5 a b c d) where fmap f (Tuple5 a b c d e) = Tuple5 a b c d (f e) instance Storable a => Functor (Tuple6 a b c d e) where fmap f (Tuple6 a b c d e f') = Tuple6 a b c d e (f f') instance Storable a => Functor (Tuple7 a b c d e f) where fmap f (Tuple7 a b c d e f' g) = Tuple7 a b c d e f' (f g) instance Storable a => Functor (Tuple8 a b c d e f g) where fmap f (Tuple8 a b c d e f' g h) = Tuple8 a b c d e f' g (f h) -- * The isomorphic type conversions instance (FFIType a b,FFIType c d) => FFIType (a,c) (Tuple2 b d) where toFFI (a,b) = (Tuple2 (toFFI a) (toFFI b)) fromFFI (Tuple2 a b) = (fromFFI a, fromFFI b) instance (FFIType a b,FFIType c d ,FFIType e f) => FFIType (a,c,e) (Tuple3 b d f) where toFFI (a,b,c) = (Tuple3 (toFFI a) (toFFI b) (toFFI c)) fromFFI (Tuple3 a b c) = (fromFFI a, fromFFI b, fromFFI c) instance (FFIType a b,FFIType c d ,FFIType e f,FFIType g h) => FFIType (a,c,e,g) (Tuple4 b d f h) where toFFI (a,b,c,d) = (Tuple4 (toFFI a) (toFFI b) (toFFI c) (toFFI d)) fromFFI (Tuple4 a b c d) = (fromFFI a, fromFFI b, fromFFI c, fromFFI d) instance (FFIType a b,FFIType c d ,FFIType e f,FFIType g h ,FFIType i j) => FFIType (a,c,e,g,i) (Tuple5 b d f h j) where toFFI (a,b,c,d,e) = (Tuple5 (toFFI a) (toFFI b) (toFFI c) (toFFI d) (toFFI e)) fromFFI (Tuple5 a b c d e) = (fromFFI a, fromFFI b, fromFFI c, fromFFI d ,fromFFI e) instance (FFIType a b,FFIType c d ,FFIType e f,FFIType g h ,FFIType i j,FFIType k l) => FFIType (a,c,e,g,i,k) (Tuple6 b d f h j l) where toFFI (a,b,c,d,e,f) = (Tuple6 (toFFI a) (toFFI b) (toFFI c) (toFFI d) (toFFI e) (toFFI f)) fromFFI (Tuple6 a b c d e f) = (fromFFI a, fromFFI b, fromFFI c, fromFFI d ,fromFFI e, fromFFI f) instance (FFIType a b,FFIType c d ,FFIType e f,FFIType g h ,FFIType i j,FFIType k l ,FFIType m n) => FFIType (a,c,e,g,i,k,m) (Tuple7 b d f h j l n) where toFFI (a,b,c,d,e,f,g) = (Tuple7 (toFFI a) (toFFI b) (toFFI c) (toFFI d) (toFFI e) (toFFI f) (toFFI g)) fromFFI (Tuple7 a b c d e f g) = (fromFFI a, fromFFI b, fromFFI c, fromFFI d ,fromFFI e, fromFFI f, fromFFI g) instance (FFIType a b,FFIType c d ,FFIType e f,FFIType g h ,FFIType i j,FFIType k l ,FFIType m n,FFIType o p) => FFIType (a,c,e,g,i,k,m,o) (Tuple8 b d f h j l n p) where toFFI (a,b,c,d,e,f,g,h) = (Tuple8 (toFFI a) (toFFI b) (toFFI c) (toFFI d) (toFFI e) (toFFI f) (toFFI g) (toFFI h)) fromFFI (Tuple8 a b c d e f g h) = (fromFFI a, fromFFI b, fromFFI c, fromFFI d ,fromFFI e, fromFFI f, fromFFI g, fromFFI h) instance (FFIType a b,FFIType c d ,Storable b, Storable d) => FFIType (a,c) (Tuple2Ptr b d) where toNative x = new (toFFI x) fromNative x = fmap fromFFI (peek x) instance (FFIType a b,FFIType c d ,FFIType e f,Storable b ,Storable d, Storable f) => FFIType (a,c,e) (Tuple3Ptr b d f) where toNative x = new (toFFI x) fromNative x = fmap fromFFI (peek x) instance (FFIType a b,FFIType c d ,FFIType e f,FFIType g h ,Storable b,Storable d ,Storable f,Storable h) => FFIType (a,c,e,g) (Tuple4Ptr b d f h) where toNative x = new (toFFI x) fromNative x = fmap fromFFI (peek x) instance (FFIType a b,FFIType c d ,FFIType e f,FFIType g h ,FFIType i j,Storable j ,Storable b,Storable d ,Storable f,Storable h) => FFIType (a,c,e,g,i) (Tuple5Ptr b d f h j) where toNative x = new (toFFI x) fromNative x = fmap fromFFI (peek x) instance (FFIType a b,FFIType c d ,FFIType e f,FFIType g h ,FFIType i j,FFIType k l ,Storable j,Storable l ,Storable b,Storable d ,Storable f,Storable h) => FFIType (a,c,e,g,i,k) (Tuple6Ptr b d f h j l) where toNative x = new (toFFI x) fromNative x = fmap fromFFI (peek x) instance (FFIType a b,FFIType c d ,FFIType e f,FFIType g h ,FFIType i j,FFIType k l ,FFIType m n,Storable n ,Storable j,Storable l ,Storable b,Storable d ,Storable f,Storable h) => FFIType (a,c,e,g,i,k,m) (Tuple7Ptr b d f h j l n) where toNative x = new (toFFI x) fromNative x = fmap fromFFI (peek x) instance (FFIType a b,FFIType c d ,FFIType e f,FFIType g h ,FFIType i j,FFIType k l ,FFIType m n,FFIType o p ,Storable n,Storable p ,Storable j,Storable l ,Storable b,Storable d ,Storable f,Storable h) => FFIType (a,c,e,g,i,k,m,o) (Tuple8Ptr b d f h j l n p) where toNative x = new (toFFI x) fromNative x = fmap fromFFI (peek x) -- * Storage instances instance (Storable a, Storable b) => Storable (Tuple2 a b) where sizeOf _ = (8) {-# LINE 206 ".\Tuples.hsc" #-} alignment _ = 4 {-# LINE 207 ".\Tuples.hsc" #-} poke ptr (Tuple2 a1 a2) = do ((\hsc_ptr -> pokeByteOff hsc_ptr 0)) ptr a1 {-# LINE 210 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 4)) ptr a2 {-# LINE 211 ".\Tuples.hsc" #-} peek ptr = do a1' <- ((\hsc_ptr -> peekByteOff hsc_ptr 0)) ptr {-# LINE 213 ".\Tuples.hsc" #-} a2' <- ((\hsc_ptr -> peekByteOff hsc_ptr 4)) ptr {-# LINE 214 ".\Tuples.hsc" #-} return $ (Tuple2 a1' a2') instance (Storable a, Storable b, Storable c) => Storable (Tuple3 a b c) where sizeOf _ = (12) {-# LINE 218 ".\Tuples.hsc" #-} alignment _ = 4 {-# LINE 219 ".\Tuples.hsc" #-} poke ptr (Tuple3 a1 a2 a3) = do ((\hsc_ptr -> pokeByteOff hsc_ptr 0)) ptr a1 {-# LINE 222 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 4)) ptr a2 {-# LINE 223 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 8)) ptr a3 {-# LINE 224 ".\Tuples.hsc" #-} peek ptr = do a1' <- ((\hsc_ptr -> peekByteOff hsc_ptr 0)) ptr {-# LINE 226 ".\Tuples.hsc" #-} a2' <- ((\hsc_ptr -> peekByteOff hsc_ptr 4)) ptr {-# LINE 227 ".\Tuples.hsc" #-} a3' <- ((\hsc_ptr -> peekByteOff hsc_ptr 8)) ptr {-# LINE 228 ".\Tuples.hsc" #-} return $ (Tuple3 a1' a2' a3') instance (Storable a, Storable b, Storable c, Storable d) => Storable (Tuple4 a b c d) where sizeOf _ = (16) {-# LINE 233 ".\Tuples.hsc" #-} alignment _ = 4 {-# LINE 234 ".\Tuples.hsc" #-} poke ptr (Tuple4 a1 a2 a3 a4) = do ((\hsc_ptr -> pokeByteOff hsc_ptr 0)) ptr a1 {-# LINE 237 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 4)) ptr a2 {-# LINE 238 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 8)) ptr a3 {-# LINE 239 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 12)) ptr a4 {-# LINE 240 ".\Tuples.hsc" #-} peek ptr = do a1' <- ((\hsc_ptr -> peekByteOff hsc_ptr 0)) ptr {-# LINE 242 ".\Tuples.hsc" #-} a2' <- ((\hsc_ptr -> peekByteOff hsc_ptr 4)) ptr {-# LINE 243 ".\Tuples.hsc" #-} a3' <- ((\hsc_ptr -> peekByteOff hsc_ptr 8)) ptr {-# LINE 244 ".\Tuples.hsc" #-} a4' <- ((\hsc_ptr -> peekByteOff hsc_ptr 12)) ptr {-# LINE 245 ".\Tuples.hsc" #-} return $ (Tuple4 a1' a2' a3' a4') instance (Storable a, Storable b, Storable c, Storable d, Storable e) => Storable (Tuple5 a b c d e) where sizeOf _ = (20) {-# LINE 250 ".\Tuples.hsc" #-} alignment _ = 4 {-# LINE 251 ".\Tuples.hsc" #-} poke ptr (Tuple5 a1 a2 a3 a4 a5) = do ((\hsc_ptr -> pokeByteOff hsc_ptr 0)) ptr a1 {-# LINE 254 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 4)) ptr a2 {-# LINE 255 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 8)) ptr a3 {-# LINE 256 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 12)) ptr a4 {-# LINE 257 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 16)) ptr a5 {-# LINE 258 ".\Tuples.hsc" #-} peek ptr = do a1' <- ((\hsc_ptr -> peekByteOff hsc_ptr 0)) ptr {-# LINE 260 ".\Tuples.hsc" #-} a2' <- ((\hsc_ptr -> peekByteOff hsc_ptr 4)) ptr {-# LINE 261 ".\Tuples.hsc" #-} a3' <- ((\hsc_ptr -> peekByteOff hsc_ptr 8)) ptr {-# LINE 262 ".\Tuples.hsc" #-} a4' <- ((\hsc_ptr -> peekByteOff hsc_ptr 12)) ptr {-# LINE 263 ".\Tuples.hsc" #-} a5' <- ((\hsc_ptr -> peekByteOff hsc_ptr 16)) ptr {-# LINE 264 ".\Tuples.hsc" #-} return $ (Tuple5 a1' a2' a3' a4' a5') instance (Storable a, Storable b, Storable c, Storable d, Storable e, Storable f) => Storable (Tuple6 a b c d e f) where sizeOf _ = (24) {-# LINE 269 ".\Tuples.hsc" #-} alignment _ = 4 {-# LINE 270 ".\Tuples.hsc" #-} poke ptr (Tuple6 a1 a2 a3 a4 a5 a6) = do ((\hsc_ptr -> pokeByteOff hsc_ptr 0)) ptr a1 {-# LINE 273 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 4)) ptr a2 {-# LINE 274 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 8)) ptr a3 {-# LINE 275 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 12)) ptr a4 {-# LINE 276 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 16)) ptr a5 {-# LINE 277 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 20)) ptr a6 {-# LINE 278 ".\Tuples.hsc" #-} peek ptr = do a1' <- ((\hsc_ptr -> peekByteOff hsc_ptr 0)) ptr {-# LINE 280 ".\Tuples.hsc" #-} a2' <- ((\hsc_ptr -> peekByteOff hsc_ptr 4)) ptr {-# LINE 281 ".\Tuples.hsc" #-} a3' <- ((\hsc_ptr -> peekByteOff hsc_ptr 8)) ptr {-# LINE 282 ".\Tuples.hsc" #-} a4' <- ((\hsc_ptr -> peekByteOff hsc_ptr 12)) ptr {-# LINE 283 ".\Tuples.hsc" #-} a5' <- ((\hsc_ptr -> peekByteOff hsc_ptr 16)) ptr {-# LINE 284 ".\Tuples.hsc" #-} a6' <- ((\hsc_ptr -> peekByteOff hsc_ptr 20)) ptr {-# LINE 285 ".\Tuples.hsc" #-} return $ (Tuple6 a1' a2' a3' a4' a5' a6') instance (Storable a, Storable b, Storable c, Storable d, Storable e, Storable f, Storable g) => Storable (Tuple7 a b c d e f g) where sizeOf _ = (28) {-# LINE 290 ".\Tuples.hsc" #-} alignment _ = 4 {-# LINE 291 ".\Tuples.hsc" #-} poke ptr (Tuple7 a1 a2 a3 a4 a5 a6 a7) = do ((\hsc_ptr -> pokeByteOff hsc_ptr 0)) ptr a1 {-# LINE 294 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 4)) ptr a2 {-# LINE 295 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 8)) ptr a3 {-# LINE 296 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 12)) ptr a4 {-# LINE 297 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 16)) ptr a5 {-# LINE 298 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 20)) ptr a6 {-# LINE 299 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 24)) ptr a7 {-# LINE 300 ".\Tuples.hsc" #-} peek ptr = do a1' <- ((\hsc_ptr -> peekByteOff hsc_ptr 0)) ptr {-# LINE 302 ".\Tuples.hsc" #-} a2' <- ((\hsc_ptr -> peekByteOff hsc_ptr 4)) ptr {-# LINE 303 ".\Tuples.hsc" #-} a3' <- ((\hsc_ptr -> peekByteOff hsc_ptr 8)) ptr {-# LINE 304 ".\Tuples.hsc" #-} a4' <- ((\hsc_ptr -> peekByteOff hsc_ptr 12)) ptr {-# LINE 305 ".\Tuples.hsc" #-} a5' <- ((\hsc_ptr -> peekByteOff hsc_ptr 16)) ptr {-# LINE 306 ".\Tuples.hsc" #-} a6' <- ((\hsc_ptr -> peekByteOff hsc_ptr 20)) ptr {-# LINE 307 ".\Tuples.hsc" #-} a7' <- ((\hsc_ptr -> peekByteOff hsc_ptr 24)) ptr {-# LINE 308 ".\Tuples.hsc" #-} return $ (Tuple7 a1' a2' a3' a4' a5' a6' a7') instance (Storable a, Storable b, Storable c, Storable d, Storable e, Storable f, Storable g, Storable h) => Storable (Tuple8 a b c d e f g h) where sizeOf _ = (32) {-# LINE 313 ".\Tuples.hsc" #-} alignment _ = 4 {-# LINE 314 ".\Tuples.hsc" #-} poke ptr (Tuple8 a1 a2 a3 a4 a5 a6 a7 a8) = do ((\hsc_ptr -> pokeByteOff hsc_ptr 0)) ptr a1 {-# LINE 317 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 4)) ptr a2 {-# LINE 318 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 8)) ptr a3 {-# LINE 319 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 12)) ptr a4 {-# LINE 320 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 16)) ptr a5 {-# LINE 321 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 20)) ptr a6 {-# LINE 322 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 24)) ptr a7 {-# LINE 323 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 28)) ptr a8 {-# LINE 324 ".\Tuples.hsc" #-} peek ptr = do a1' <- ((\hsc_ptr -> peekByteOff hsc_ptr 0)) ptr {-# LINE 326 ".\Tuples.hsc" #-} a2' <- ((\hsc_ptr -> peekByteOff hsc_ptr 4)) ptr {-# LINE 327 ".\Tuples.hsc" #-} a3' <- ((\hsc_ptr -> peekByteOff hsc_ptr 8)) ptr {-# LINE 328 ".\Tuples.hsc" #-} a4' <- ((\hsc_ptr -> peekByteOff hsc_ptr 12)) ptr {-# LINE 329 ".\Tuples.hsc" #-} a5' <- ((\hsc_ptr -> peekByteOff hsc_ptr 16)) ptr {-# LINE 330 ".\Tuples.hsc" #-} a6' <- ((\hsc_ptr -> peekByteOff hsc_ptr 20)) ptr {-# LINE 331 ".\Tuples.hsc" #-} a7' <- ((\hsc_ptr -> peekByteOff hsc_ptr 24)) ptr {-# LINE 332 ".\Tuples.hsc" #-} a8' <- ((\hsc_ptr -> peekByteOff hsc_ptr 28)) ptr {-# LINE 333 ".\Tuples.hsc" #-} return $ (Tuple8 a1' a2' a3' a4' a5' a6' a7' a8') instance (Storable a, Storable b) => Storable (a, b) where sizeOf _ = (8) {-# LINE 337 ".\Tuples.hsc" #-} alignment _ = 4 {-# LINE 338 ".\Tuples.hsc" #-} poke ptr (a1, a2) = do ((\hsc_ptr -> pokeByteOff hsc_ptr 0)) ptr a1 {-# LINE 341 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 4)) ptr a2 {-# LINE 342 ".\Tuples.hsc" #-} peek ptr = do a1' <- ((\hsc_ptr -> peekByteOff hsc_ptr 0)) ptr {-# LINE 344 ".\Tuples.hsc" #-} a2' <- ((\hsc_ptr -> peekByteOff hsc_ptr 4)) ptr {-# LINE 345 ".\Tuples.hsc" #-} return $ (a1', a2') instance (Storable a, Storable b, Storable c) => Storable (a, b, c) where sizeOf _ = (12) {-# LINE 349 ".\Tuples.hsc" #-} alignment _ = 4 {-# LINE 350 ".\Tuples.hsc" #-} poke ptr (a1, a2, a3) = do ((\hsc_ptr -> pokeByteOff hsc_ptr 0)) ptr a1 {-# LINE 353 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 4)) ptr a2 {-# LINE 354 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 8)) ptr a3 {-# LINE 355 ".\Tuples.hsc" #-} peek ptr = do a1' <- ((\hsc_ptr -> peekByteOff hsc_ptr 0)) ptr {-# LINE 357 ".\Tuples.hsc" #-} a2' <- ((\hsc_ptr -> peekByteOff hsc_ptr 4)) ptr {-# LINE 358 ".\Tuples.hsc" #-} a3' <- ((\hsc_ptr -> peekByteOff hsc_ptr 8)) ptr {-# LINE 359 ".\Tuples.hsc" #-} return $ (a1', a2', a3') instance (Storable a, Storable b, Storable c, Storable d) => Storable (a, b, c, d) where sizeOf _ = (16) {-# LINE 364 ".\Tuples.hsc" #-} alignment _ = 4 {-# LINE 365 ".\Tuples.hsc" #-} poke ptr (a1, a2, a3, a4) = do ((\hsc_ptr -> pokeByteOff hsc_ptr 0)) ptr a1 {-# LINE 368 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 4)) ptr a2 {-# LINE 369 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 8)) ptr a3 {-# LINE 370 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 12)) ptr a4 {-# LINE 371 ".\Tuples.hsc" #-} peek ptr = do a1' <- ((\hsc_ptr -> peekByteOff hsc_ptr 0)) ptr {-# LINE 373 ".\Tuples.hsc" #-} a2' <- ((\hsc_ptr -> peekByteOff hsc_ptr 4)) ptr {-# LINE 374 ".\Tuples.hsc" #-} a3' <- ((\hsc_ptr -> peekByteOff hsc_ptr 8)) ptr {-# LINE 375 ".\Tuples.hsc" #-} a4' <- ((\hsc_ptr -> peekByteOff hsc_ptr 12)) ptr {-# LINE 376 ".\Tuples.hsc" #-} return $ (a1', a2', a3', a4') instance (Storable a, Storable b, Storable c, Storable d, Storable e) => Storable (a, b, c, d, e) where sizeOf _ = (20) {-# LINE 381 ".\Tuples.hsc" #-} alignment _ = 4 {-# LINE 382 ".\Tuples.hsc" #-} poke ptr (a1, a2, a3, a4, a5) = do ((\hsc_ptr -> pokeByteOff hsc_ptr 0)) ptr a1 {-# LINE 385 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 4)) ptr a2 {-# LINE 386 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 8)) ptr a3 {-# LINE 387 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 12)) ptr a4 {-# LINE 388 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 16)) ptr a5 {-# LINE 389 ".\Tuples.hsc" #-} peek ptr = do a1' <- ((\hsc_ptr -> peekByteOff hsc_ptr 0)) ptr {-# LINE 391 ".\Tuples.hsc" #-} a2' <- ((\hsc_ptr -> peekByteOff hsc_ptr 4)) ptr {-# LINE 392 ".\Tuples.hsc" #-} a3' <- ((\hsc_ptr -> peekByteOff hsc_ptr 8)) ptr {-# LINE 393 ".\Tuples.hsc" #-} a4' <- ((\hsc_ptr -> peekByteOff hsc_ptr 12)) ptr {-# LINE 394 ".\Tuples.hsc" #-} a5' <- ((\hsc_ptr -> peekByteOff hsc_ptr 16)) ptr {-# LINE 395 ".\Tuples.hsc" #-} return $ (a1', a2', a3', a4', a5') instance (Storable a, Storable b, Storable c, Storable d, Storable e, Storable f) => Storable (a, b, c, d, e, f) where sizeOf _ = (24) {-# LINE 400 ".\Tuples.hsc" #-} alignment _ = 4 {-# LINE 401 ".\Tuples.hsc" #-} poke ptr (a1, a2, a3, a4, a5, a6) = do ((\hsc_ptr -> pokeByteOff hsc_ptr 0)) ptr a1 {-# LINE 404 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 4)) ptr a2 {-# LINE 405 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 8)) ptr a3 {-# LINE 406 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 12)) ptr a4 {-# LINE 407 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 16)) ptr a5 {-# LINE 408 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 20)) ptr a6 {-# LINE 409 ".\Tuples.hsc" #-} peek ptr = do a1' <- ((\hsc_ptr -> peekByteOff hsc_ptr 0)) ptr {-# LINE 411 ".\Tuples.hsc" #-} a2' <- ((\hsc_ptr -> peekByteOff hsc_ptr 4)) ptr {-# LINE 412 ".\Tuples.hsc" #-} a3' <- ((\hsc_ptr -> peekByteOff hsc_ptr 8)) ptr {-# LINE 413 ".\Tuples.hsc" #-} a4' <- ((\hsc_ptr -> peekByteOff hsc_ptr 12)) ptr {-# LINE 414 ".\Tuples.hsc" #-} a5' <- ((\hsc_ptr -> peekByteOff hsc_ptr 16)) ptr {-# LINE 415 ".\Tuples.hsc" #-} a6' <- ((\hsc_ptr -> peekByteOff hsc_ptr 20)) ptr {-# LINE 416 ".\Tuples.hsc" #-} return $ (a1', a2', a3', a4', a5', a6') instance (Storable a, Storable b, Storable c, Storable d, Storable e, Storable f, Storable g) => Storable (a, b, c, d, e, f, g) where sizeOf _ = (28) {-# LINE 421 ".\Tuples.hsc" #-} alignment _ = 4 {-# LINE 422 ".\Tuples.hsc" #-} poke ptr (a1, a2, a3, a4, a5, a6, a7) = do ((\hsc_ptr -> pokeByteOff hsc_ptr 0)) ptr a1 {-# LINE 425 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 4)) ptr a2 {-# LINE 426 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 8)) ptr a3 {-# LINE 427 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 12)) ptr a4 {-# LINE 428 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 16)) ptr a5 {-# LINE 429 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 20)) ptr a6 {-# LINE 430 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 24)) ptr a7 {-# LINE 431 ".\Tuples.hsc" #-} peek ptr = do a1' <- ((\hsc_ptr -> peekByteOff hsc_ptr 0)) ptr {-# LINE 433 ".\Tuples.hsc" #-} a2' <- ((\hsc_ptr -> peekByteOff hsc_ptr 4)) ptr {-# LINE 434 ".\Tuples.hsc" #-} a3' <- ((\hsc_ptr -> peekByteOff hsc_ptr 8)) ptr {-# LINE 435 ".\Tuples.hsc" #-} a4' <- ((\hsc_ptr -> peekByteOff hsc_ptr 12)) ptr {-# LINE 436 ".\Tuples.hsc" #-} a5' <- ((\hsc_ptr -> peekByteOff hsc_ptr 16)) ptr {-# LINE 437 ".\Tuples.hsc" #-} a6' <- ((\hsc_ptr -> peekByteOff hsc_ptr 20)) ptr {-# LINE 438 ".\Tuples.hsc" #-} a7' <- ((\hsc_ptr -> peekByteOff hsc_ptr 24)) ptr {-# LINE 439 ".\Tuples.hsc" #-} return $ (a1', a2', a3', a4', a5', a6', a7') instance (Storable a, Storable b, Storable c, Storable d, Storable e, Storable f, Storable g, Storable h) => Storable (a, b, c, d, e, f, g, h) where sizeOf _ = (32) {-# LINE 444 ".\Tuples.hsc" #-} alignment _ = 4 {-# LINE 445 ".\Tuples.hsc" #-} poke ptr (a1, a2, a3, a4, a5, a6, a7, a8) = do ((\hsc_ptr -> pokeByteOff hsc_ptr 0)) ptr a1 {-# LINE 448 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 4)) ptr a2 {-# LINE 449 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 8)) ptr a3 {-# LINE 450 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 12)) ptr a4 {-# LINE 451 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 16)) ptr a5 {-# LINE 452 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 20)) ptr a6 {-# LINE 453 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 24)) ptr a7 {-# LINE 454 ".\Tuples.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 28)) ptr a8 {-# LINE 455 ".\Tuples.hsc" #-} peek ptr = do a1' <- ((\hsc_ptr -> peekByteOff hsc_ptr 0)) ptr {-# LINE 457 ".\Tuples.hsc" #-} a2' <- ((\hsc_ptr -> peekByteOff hsc_ptr 4)) ptr {-# LINE 458 ".\Tuples.hsc" #-} a3' <- ((\hsc_ptr -> peekByteOff hsc_ptr 8)) ptr {-# LINE 459 ".\Tuples.hsc" #-} a4' <- ((\hsc_ptr -> peekByteOff hsc_ptr 12)) ptr {-# LINE 460 ".\Tuples.hsc" #-} a5' <- ((\hsc_ptr -> peekByteOff hsc_ptr 16)) ptr {-# LINE 461 ".\Tuples.hsc" #-} a6' <- ((\hsc_ptr -> peekByteOff hsc_ptr 20)) ptr {-# LINE 462 ".\Tuples.hsc" #-} a7' <- ((\hsc_ptr -> peekByteOff hsc_ptr 24)) ptr {-# LINE 463 ".\Tuples.hsc" #-} a8' <- ((\hsc_ptr -> peekByteOff hsc_ptr 28)) ptr {-# LINE 464 ".\Tuples.hsc" #-} return $ (a1', a2', a3', a4', a5', a6', a7', a8')