úÎ?¦;µ&      !"#$%(c) Levent ErkokBSD3erkokl@gmail.com experimentalSafe <Complete internal representation for a floating-point numberBThe value as represented as a full Integer. Storage purposes only. FP precision.0Sign. If True then negative, otherwise positive.The exponent as it is stored."The implicit bias of the exponent.The actual exponent.Bits in the fractional part Layout representation !Floating-point kind (i.e., value) Kinds of floating point values 8Zero: 0. If Bool is true, then this is -0; otherwise +0. >Infinity: oo. If Bool is true, then this is -oo, otherwie +oo.The signaling-NaN.The quiet-NaN./Denormalized number, i.e., leading bit is not 1 Normal value.Integer/Word precision8-bit unsigned (byte) 8-bit signed16-bit unsigned (word) 16-bit signed32-bit unsigned (double-word) 32-bit signed64-bit unsigned (quad-word) 64-bit signedFloating point precision>Half precision; 16 bits = 1 sign + 5 exponent + 10 mantissa>Single precision; 32 bits = 1 sign + 8 exponent + 23 mantissa>Double precision; 64 bits = 1 sign + 11 exponent + 52 mantissa& Determine if we have a NaN value'$Show instance for integer-precisions! &'   &   &'(c) Levent ErkokBSD3erkokl@gmail.com experimentalSafe!("Returns True if all bits are False)!Returns True if all bits are True*Returns True if any bit is True+ILay out a sequence of separated bools as a nicely formatted binary number,Binary to String conversion-Test whether a digit is binary.'Convert from binary char digit to value/Read a number in base 160Read a number in base 21&Display a binary number in groups of 42Group in chunks of 443=Display a binary number in groups of 4, in hexadecimal format4%Cluster a list into given size chunks5Big-endian num converter6\Drop unnecessary parts from input. This enables the user to be able to give data more easily7Half-precision ruler, line 18Half-precision ruler, line 29Half-precision ruler, line 3:Single-precision ruler, line 1;Single-precision ruler, line 2<Single-precision ruler, line 3=Double-precision ruler, line 1>Double-precision ruler, line 2?Double-precision ruler, line 3@=Byte-precision ruler, line 2 (note that no line 1 is needed!)AWord-precision ruler, line 1BWord-precision ruler, line 2C#Double-word-precision ruler, line 1D#Double-word-precision ruler, line 2E!Quad-word-precision ruler, line 1F'QuadDouble-word-precision ruler, line 2G@Convert Floating point precision to corresponding number of bitsHBConvert Integer precision to whether it's signed and how many bits!()*+,-./0123456789:;<=>?@ABCDEFGH!()*+,-./0123456789:;<=>?@ABCDEFGH!()*+,-./0123456789:;<=>?@ABCDEFGH(c) Levent ErkokBSD3erkokl@gmail.com experimentalNone# ÇCrack a Haskell Integer value as the given precision floating value. The Integer should be the value corresponding to the bit-pattern as the float is laid out in memory according to the IEEE rules.I!Use Haskell Float to represent SPJ"Use Haskell Double to represent DPK-Assemble a FP from the given bits and pieces. iDisplay a Floating-point number in a nicely formatted way. (This function is also available through the L instance for ), but is provided here for symmetry with !.)!DDisplay a Integer (signed/unsigned) number in a nicely formatted way"EConvert the given string to a IEEE number with the required precision#?Turn a Haskell float to the internal detailed FP representation$@Turn a Haskell double to the internal detailed FP representation%Show instance for FP IJK !"#$%%   !"#$%  #$" ! IJK !"#$%M      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR#crackNum-1.9-47Vvog0YAdwBUPVXFT5RKGData.Numbers.CrackNumData.Numbers.CrackNum.DataData.Numbers.CrackNum.UtilsFPintValprecsignstExptbiasexptfracBits bitLayOutkindKindZeroInftySNaNQNaNDenormalNormal IPrecisionW8I8W16I16W32I32W64I64 PrecisionHPSPDP integerToFP displayFP displayWord stringToFP floatToFP doubleToFP$fShowFP isNaNKind$fShowIPrecisionall0all1any1layOutb2s isBinDigitbinDigitreadB16readB2binDispgrpBy4hexDispclusterbvcleanUphpInds1hpInds2hpInds3spInds1spInds2spInds3dpInds1dpInds2dpInds3bInds2wInds1wInds2dInds1dInds2qInds1qInds2fpSzsgSzspValdpValcrackbaseGHC.ShowShow