{-# OPTIONS_GHC -ddump-splices -fno-warn-orphans #-}
{-# LANGUAGE TemplateHaskell, TypeFamilies, DeriveTraversable, RankNTypes #-}
import Data.Algebra
-- import Data.Algebra.TH
import Data.Ratio
deriveInstance [t| forall m n. (Num m, Num n) => Num (m, n) |]
deriveInstance [t| forall m n. (Fractional m, Fractional n) => Fractional (m, n) |]
-- deriveSuperclassInstances [t| forall m n. (Fractional m, Fractional n) => Fractional (m, n) |]
test :: (Ratio Int, Ratio Int)
test = (5, 3) / (3, 2) + (1, 4)