-- | Overloaded natural numbers. module Overloaded.Naturals ( FromNatural (..), ) where import Numeric.Natural (Natural) -- -- | Class for 'Natural'-like datastructures -- -- A numeric literal @42@ is desugared to -- -- @ -- 'fromNatural' 42 -- @ -- ---- Enabled with: -- -- @ -- {-\# OPTIONS -fplugin=Overloaded -fplugin-opt=Overloaded:Naturals #-} -- @ -- class FromNatural a where fromNatural :: Natural -> a instance FromNatural Natural where fromNatural = id instance FromNatural Integer where fromNatural = fromIntegral