module Math.NumberTheory.Zeta.Utils
( skipEvens
, skipOdds
) where
import Data.List.Infinite (Infinite(..))
import qualified Data.List.Infinite as Inf
skipOdds :: Infinite a -> Infinite a
skipOdds :: forall a. Infinite a -> Infinite a
skipOdds (a
x :< a
_ :< Infinite a
xs) = a
x a -> Infinite a -> Infinite a
forall a. a -> Infinite a -> Infinite a
:< Infinite a -> Infinite a
forall a. Infinite a -> Infinite a
skipOdds Infinite a
xs
skipEvens :: Infinite a -> Infinite a
skipEvens :: forall a. Infinite a -> Infinite a
skipEvens = Infinite a -> Infinite a
forall a. Infinite a -> Infinite a
skipOdds (Infinite a -> Infinite a)
-> (Infinite a -> Infinite a) -> Infinite a -> Infinite a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Infinite a -> Infinite a
forall a. Infinite a -> Infinite a
Inf.tail