That's where I started. I already use a newtype with GND for this, and it looks like this:
newtype Count = Count Int64
deriving ( Eq
, Read
, Show
, Enum
, Bounded
, Num
, Real
, Integral
, Ord
)
The problem is that most programmers are lazy or hard pressed for time and having to write a newtype with a big list of instances actually discourages the use of newtypes freely for this case, they may just make it a habit to let it go. We can't just deny this and say that programmers must be disciplined. They will often try taking the path of least effort.