id	summary	reporter	owner	description	type	status	priority	milestone	version	resolution	keywords	cc
48	Generate Unbox instances using TH	Khudyakov		"It would be very nice and useful feature. Tuple-like data types are very frequently used. 

{{{
data Point a = Point a a
}}}

It's not different from (a,a) and therefore could have Unboxed instance. However writing such instance is highly impractical. Obvious workaround is to make Point a newtype and to use GeneraliedNewtypeDeriving:

{{{
newtype Point a = Point (a,a)

deriving instance (U.Unbox a) => U.Unbox             (Point a a)
deriving instance (U.Unbox a) => G.Vector  U.Vector  (Point a a)
deriving instance (U.Unbox a) => M.MVector U.MVector (Point a a)
}}}

This approach looks a little ugly to me. And if newtype couldn't be used for any reason it won't work.

Since to my knowledge TH doesn't offer any control on inlining it's not possible implement. 



"	enhancement	closed	minor			wontfix		alexey.skladnoy@… bgamari PHO haskell.org@…
