checked-0.1.0.0: Data/Word/Checked.hs
{-# LANGUAGE CPP, GeneralizedNewtypeDeriving #-}
-- |
-- Module : Data.Word.Checked
-- Copyright : (c) Antoine Latter 2008
-- License : BSD3
--
-- Maintainer: Antoine Latter <aslatter@gmail.com>
-- Stability : provisional
-- Portability: portable -- requires GeneralizedNewtypeDeriving
--
-- A drop-in replacements for the Data.Word types.
-- Exceptions are thrown whenever an operation would over-flow.
--
module Data.Word.Checked(Word()
,Word8()
,Word16()
,Word32()
,Word64()
) where
import qualified Data.Word as W
import Control.Exception(assert)
import Data.Typeable
import Foreign.Storable (Storable)
import Text.Printf (PrintfArg)
import Data.Ix (Ix)
-- import Data.Generics.Basics (Data)
import Data.Bits (Bits)
#include "checked.h"
CHECKED_WRAPPER(Word, W, W.Word)
CHECKED_WRAPPER(Word8, W8, W.Word8)
CHECKED_WRAPPER(Word16, W16, W.Word16)
CHECKED_WRAPPER(Word32, W32, W.Word32)
CHECKED_WRAPPER(Word64, W64, W.Word64)