[Add documentation for seq simonpj@microsoft.com**20061204013116] { hunk ./docs/users_guide/glasgow_exts.xml 6133 + The <literal>seq</literal> function + +The function seq is as described in the Haskell98 Report. + + seq :: a -> b -> b + +It evaluates its first argument to head normal form, and then returns its +second argument as the result. The reason that it is documented here is +that, despite seq's polymorphism, its +second argument can have an unboxed type, or +can be an unboxed tuple; for example (seq x 4#) +or (seq x (# p,q #)). This requires b +to be instantiated to an unboxed type, which is not usually allowed. + + + hunk ./docs/users_guide/glasgow_exts.xml 6207 + +Like seq, the argument of lazy can have +an unboxed type. + + hunk ./docs/users_guide/glasgow_exts.xml 6227 + +The argument to unsafeCoerce# can have unboxed types, +although extremely bad things will happen if you coerce a boxed type +to an unboxed type. + + hunk ./docs/users_guide/glasgow_exts.xml 6234 + }