module Data.Yarr.Utils.FixedVector.VecTupleInstances where import Data.Vector.Fixed import Data.Yarr.Utils.FixedVector.Arity import Data.Yarr.Utils.FixedVector.VecTuple #define DERIV(n,clas) deriving instance clas e => clas (VecTuple (n) e) #define VEC_TUPLE_INST(N,con,tup) \ makeVecTupleInstance [t|N|] (undefined :: N); \ DERIV(N, Eq); DERIV(N, Ord); DERIV(N, Bounded); \ DERIV(N, Read); DERIV(N, Show) VEC_TUPLE_INST(N2,VT_2,(e, e)) VEC_TUPLE_INST(N3,VT_3,(e, e, e)) VEC_TUPLE_INST(N4,VT_4,(e, e, e, e)) VEC_TUPLE_INST(N5,VT_5,(e, e, e, e, e)) VEC_TUPLE_INST(N6,VT_6,(e, e, e, e, e, e)) VEC_TUPLE_INST(N7,VT_7,(e, e, e, e, e, e, e)) VEC_TUPLE_INST(N8,VT_8,(e, e, e, e, e, e, e, e))