module Euler (
	module Exports,
	EulerType,
	printEuler
) where

import Euler.Digits as Exports
import Euler.Divisors as Exports
import Euler.Exponents as Exports
import Euler.Fibonacci as Exports
import Euler.Functional as Exports
import Euler.Integral as Exports
import Euler.Miscellaneous as Exports
import Euler.Polygonal as Exports
import Euler.Primes as Exports
import Euler.Roman as Exports
import Euler.Sum as Exports

import Control.Applicative as Exports
import Control.Arrow as Exports
import Control.Monad as Exports

import Data.Array as Exports
import Data.Word as Exports

type EulerType = Either Word64 Rational

printEuler :: EulerType -> IO ()
printEuler (Left x)  = print x
printEuler (Right x) = print x
