Dual is a Haskell package, similar to Data.Complex, to work with dual numbers. Dual numbers are constructed using the Dual constructor. Specifically, Dual a b = a + bε. At the moment, Num, Fractional, and Floating (not complete) instances have been defined for dual numbers.
https://en.wikipedia.org/wiki/Dual_number https://math.stackexchange.com/questions/1914591/dual-number-ab-varepsilon-raised-to-a-dual-power-e-g-ab-varepsilon https://www.tiktok.com/@maths_visual/video/7530507874926136606