    bin2dec' _ x = trace ( "the value is expected binary value composed of '0' or '1'. The written value is incorrect") undefined

hexNumP = hex2dec <$> (string "0x" *> many alphaNum) where
    hex2dec nums = toDecimal hex2dec' nums
    hex2dec' c x = case lookup (toUpper c) $ zip "0123456789ABCDEF" [0..] of
        Just v  -> v * 16^x