Changing prefetch primops to have a `seq`-like interface

Authored by carter.


Changing prefetch primops to have a seq-like interface

The current primops for prefetching do not properly work in pure code;
namely, the primops are not 'hoisted' into the correct call sites based
on when arguments are evaluated. Instead, they should use a seq-like
interface, which will cause it to be evaluated when the needed term is.

See Trac #9353 for the full discussion.

Test Plan: updated tests for pure prefetch in T8256 to reflect the design changes in Trac #9353

Reviewers: simonmar, hvr, ekmett, austin

Reviewed By: ekmett, austin

Subscribers: merijn, thomie, carter, simonmar

Differential Revision:

GHC Trac Issues: Trac #9353