has_side_effects = True
out_of_line = True
-primop InfoPtrOp "infoPtr#" GenPrimOp
- a -> Addr#
+primop UnpackClosureOp "unpackClosure#" GenPrimOp
+ a -> (# Addr#, Array# b, ByteArr# #)
with
out_of_line = True
-primop ClosurePayloadOp "closurePayload#" GenPrimOp
- a -> (# Array# b, ByteArr# #)
+primop GetApStackValOp "getApStackVal#" GenPrimOp
+ a -> Int# -> (# Int#, b #)
with
out_of_line = True
-
------------------------------------------------------------------------
section "Etc"
{Miscellaneous built-ins}
{\tt par :: a -> b -> b}
- {\tt par x y = case (par\# x) of \_ -> lazy y x}
+ {\tt par x y = case (par\# x) of \_ -> lazy y}
If {\tt lazy} were not lazy, {\tt par} would look strict in {\tt y} which
would defeat the whole purpose of {\tt par}.