unsafeWithPurePrimLen v fun =   case S.unsafeToForeignPtr0 v of
                    (fp,n) -> do
                        res <-  withForeignPtrPrim fp (\x -> fun (x,n))
                        touchForeignPtrPrim fp
                        return res
unsafeWithPurePrimLen v fun =   case S.unsafeToForeignPtr0 v of
                    (fp,n) -> do
                        res <-  withForeignPtrPrim fp (\x -> fun (x,n))
                        touchForeignPtrPrim fp
                        return res
unsafeWithPurePrimLen v fun =   case S.unsafeToForeignPtr0 v of
                    (fp,n) -> do
                        res <-  withForeignPtrPrim fp (\x -> fun (x,n))
                        touchForeignPtrPrim fp
                        return res