module Test.Extrapolate.Basic
( module Test.Extrapolate.Core
, module Test.Extrapolate.New
)
where
import Test.Extrapolate.Core
import Test.Extrapolate.New
import Data.Ratio
instance (Integral a, Generalizable a) => Generalizable (Ratio a) where
expr = showConstant
name _ = "q"
instances q = this q id
instance ( Generalizable a, Generalizable b, Generalizable c, Generalizable d
, Generalizable e )
=> Generalizable (a,b,c,d,e) where
name xyzwv = name x ++ name y ++ name z ++ name w ++ name v
where (x,y,z,w,v) = xyzwv
expr (x,y,z,w,v) = constant ",,,," ((,,,,) ->>>>>: (x,y,z,w,v))
:$ expr x :$ expr y :$ expr z :$ expr w :$ expr v
instances xyzwv = this xyzwv $ instances x . instances y . instances z
. instances w . instances v
where (x,y,z,w,v) = xyzwv
instance ( Generalizable a, Generalizable b, Generalizable c, Generalizable d
, Generalizable e, Generalizable f )
=> Generalizable (a,b,c,d,e,f) where
name xyzwvu = name x ++ name y ++ name z ++ name w ++ name v ++ name u
where (x,y,z,w,v,u) = xyzwvu
expr (x,y,z,w,v,u) = constant ",,,,," ((,,,,,) ->>>>>>: (x,y,z,w,v,u))
:$ expr x :$ expr y :$ expr z :$ expr w :$ expr v :$ expr u
instances xyzwvu = this xyzwvu $ instances x . instances y . instances z
. instances w . instances v . instances u
where (x,y,z,w,v,u) = xyzwvu
instance ( Generalizable a, Generalizable b, Generalizable c, Generalizable d
, Generalizable e, Generalizable f, Generalizable g )
=> Generalizable (a,b,c,d,e,f,g) where
name xyzwvut = name x ++ name y ++ name z ++ name w
++ name v ++ name u ++ name t
where (x,y,z,w,v,u,t) = xyzwvut
expr (x,y,z,w,v,u,t) = constant ",,,,,," ((,,,,,,) ->>>>>>>: (x,y,z,w,v,u,t))
:$ expr x :$ expr y :$ expr z :$ expr w
:$ expr v :$ expr u :$ expr t
instances xyzwvut = this xyzwvut
$ instances x . instances y . instances z . instances w
. instances v . instances u . instances t
where (x,y,z,w,v,u,t) = xyzwvut
#if __GLASGOW_HASKELL__ < 710
#else
instance ( Generalizable a, Generalizable b, Generalizable c, Generalizable d
, Generalizable e, Generalizable f, Generalizable g, Generalizable h )
=> Generalizable (a,b,c,d,e,f,g,h) where
name xyzwvuts = name x ++ name y ++ name z ++ name w
++ name v ++ name u ++ name t ++ name s
where (x,y,z,w,v,u,t,s) = xyzwvuts
expr (x,y,z,w,v,u,t,s) = constant ",,,,,,," ((,,,,,,,) ->>>>>>>>: (x,y,z,w,v,u,t,s))
:$ expr x :$ expr y :$ expr z :$ expr w
:$ expr v :$ expr u :$ expr t :$ expr s
instances xyzwvuts = this xyzwvuts
$ instances x . instances y . instances z . instances w
. instances v . instances u . instances t . instances s
where (x,y,z,w,v,u,t,s) = xyzwvuts
#endif