OddWord-1.0.0.2: Provides a wrapper for deriving word types with fewer bits.

Safe HaskellSafe-Inferred

Data.Word.Odd

Contents

Synopsis

Odd Word Wrapper

data OddWord a n Source

OddWord wraps the integer type specified in the first type parameter and exposes a subset of the available bits as an unsigned word. The number of bits to expose is encoded into the second type parameter.

The predefined word types provided by this module give some examples.

Instances

(Num a, Bits a, TypeNum n) => Bounded (OddWord a n) 
(Enum a, Ord a, Num a, Bits a, TypeNum n) => Enum (OddWord a n) 
Eq a => Eq (OddWord a n) 
(Integral a, Bits a, TypeNum n) => Integral (OddWord a n) 
(Num a, Bits a, TypeNum n) => Num (OddWord a n) 
Ord a => Ord (OddWord a n) 
(Read a, Num a, Bits a, TypeNum n) => Read (OddWord a n) 
(Real a, Bits a, TypeNum n) => Real (OddWord a n) 
Show a => Show (OddWord a n) 
(Num a, Bits a, TypeNum n) => Bits (OddWord a n) 

Type Numbers

class TypeNum a Source

Intances of TypeNum represent type-level numbers.

Instances

TypeNum () 
TypeNum a => TypeNum (Zero a) 
TypeNum a => TypeNum (One a) 

data One a Source

Represents a type-level number with a leading one bit followed by the string of digits specified by a.

Instances

TypeNum a => TypeNum (One a) 

data Zero a Source

Represents a type-level number with a placeholder zero bit followed by the string of digits specified by a.

Instances

TypeNum a => TypeNum (Zero a) 

Predefined Odd Words

type Word31 = OddWord Word32 (One (One (One (One (One ())))))Source

type Word39 = OddWord Word64 (One (Zero (Zero (One (One (One ()))))))Source

type Word43 = OddWord Word64 (One (Zero (One (Zero (One (One ()))))))Source

type Word45 = OddWord Word64 (One (Zero (One (One (Zero (One ()))))))Source

type Word46 = OddWord Word64 (One (Zero (One (One (One (Zero ()))))))Source

type Word47 = OddWord Word64 (One (Zero (One (One (One (One ()))))))Source

type Word51 = OddWord Word64 (One (One (Zero (Zero (One (One ()))))))Source

type Word53 = OddWord Word64 (One (One (Zero (One (Zero (One ()))))))Source

type Word54 = OddWord Word64 (One (One (Zero (One (One (Zero ()))))))Source

type Word55 = OddWord Word64 (One (One (Zero (One (One (One ()))))))Source

type Word57 = OddWord Word64 (One (One (One (Zero (Zero (One ()))))))Source

type Word58 = OddWord Word64 (One (One (One (Zero (One (Zero ()))))))Source

type Word59 = OddWord Word64 (One (One (One (Zero (One (One ()))))))Source

type Word60 = OddWord Word64 (One (One (One (One (Zero (Zero ()))))))Source

type Word61 = OddWord Word64 (One (One (One (One (Zero (One ()))))))Source

type Word62 = OddWord Word64 (One (One (One (One (One (Zero ()))))))Source

type Word63 = OddWord Word64 (One (One (One (One (One (One ()))))))Source