packages feed

fastmemo-0.1.0.0: src/Data/Function/FastMemo/Ratio.hs

{-# OPTIONS_GHC -Wno-orphans #-}

module Data.Function.FastMemo.Ratio () where

import Data.Function.FastMemo.Class (Memoizable (..))
import Data.Ratio (Ratio, denominator, numerator, (%))

instance (Integral a, Memoizable a) => Memoizable (Ratio a) where
  memoize f = memoize (f . uncurry (%)) . (\x -> (numerator x, denominator x))