Haskell has several number types including Int, Integer, Float, Double, Ratio, and Complex. Int and Integer are integral types with Int having a fixed precision and Integer having arbitrary precision. Float and Double are floating point types with single and double precision respectively. Ratio represents rational numbers using the Ratio type. Complex represents complex numbers using the Complex type. The various number types instantiate typeclasses like Num, Fractional, Floating, Real, and RealFrac that define common numeric operations.