From 9b02922914a90c7a0b5751ca5d4293e00caf366b Mon Sep 17 00:00:00 2001 From: James Crayne Date: Sun, 28 Oct 2018 23:01:32 -0400 Subject: remove IsMultipleOf type foo to build on older ghc --- haskell/Data/Primitive/ByteArray/Util.hs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/haskell/Data/Primitive/ByteArray/Util.hs b/haskell/Data/Primitive/ByteArray/Util.hs index de944e7..83a2e7d 100644 --- a/haskell/Data/Primitive/ByteArray/Util.hs +++ b/haskell/Data/Primitive/ByteArray/Util.hs @@ -7,6 +7,7 @@ {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeOperators #-} +{-# LANGUAGE CPP #-} module Data.Primitive.ByteArray.Util where import GHC.Exts (Ptr(..)) @@ -37,7 +38,9 @@ instance n ~ (q * k) => IsMultipleOf n k writeAtByte :: ( Prim a , PrimMonad m +#if __GLASGOW_HASKELL__ >= 802 , IsMultipleOf n (SizeOf a) +#endif ) => MutableByteArray (PrimState m) -> Offset n -> a -> m () writeAtByte buf (Offset offset) a = writeByteArray buf (div offset $ (sizeOf a)) a {-# INLINE writeAtByte #-} @@ -45,7 +48,9 @@ writeAtByte buf (Offset offset) a = writeByteArray buf (div offset $ (sizeOf a)) readAtByte :: forall a m n. ( Prim a , PrimMonad m +#if __GLASGOW_HASKELL__ >= 802 , IsMultipleOf n (SizeOf a) +#endif ) => MutableByteArray (PrimState m) -> Offset n -> m a readAtByte buf (Offset offset) = readByteArray buf (div offset $ (sizeOf (undefined :: a))) {-# INLINE readAtByte #-} -- cgit v1.2.3