…or (and since Haskell is already non-strict by default) why not define:
newtype HyperStrict a = HS a
hyperstrict :: a -> HyperStrict a
hyperstrict x = case compel x of r -> HS r
where compel :: a -> a
is a new primitive hyperstrict-evaluator function, as mentioned here and elsewhere.