mulr       :: BinNum -> BinNum -> BinNum


toBinNum n | n==0 = [O]
           | even n = O : toBinNum(halfOfN)
           | odd  n = I : tail (toBinNum (n - 1))
             where halfOfN = n `div` 2
mulr       :: BinNum -> BinNum -> BinNum
toBinNum n | n==0 = [O]
           | even n = O : toBinNum(halfOfN)
           | odd  n = I : tail (toBinNum (n - 1))
             where halfOfN = n `div` 2
toBinNum n | n==0 = [O]
           | even n = O : toBinNum(halfOfN)
           | odd  n = I : tail (toBinNum (n - 1))
             where halfOfN = n `div` 2