Documentation
A Uniq
is a value that can only be constructed under controlled
conditions (in IO or ST, basically), and once constructed can only be
compared to Uniq
values created under the same conditions (in the same
monad). Upon comparison, a Uniq
is ONLY ever equal to itself. Beyond
that, no promises regarding ordering are made except that once constructed
the order is deterministic and a proper ordering relation (eg, > is
transitive and irreflexive, etc.)
Eq (Uniq s) | |
Ord (Uniq s) | |
Show (Uniq RealWorld) | There is only one |
data RealWorld
RealWorld
is deeply magical. It is primitive, but it is not
unlifted (hence ptrArg
). We never manipulate values of type
RealWorld
; it's only used in the type system, to parameterise State#
.
Show (Uniq RealWorld) | There is only one |
GShow (Tag RealWorld) | |
Show (Tag RealWorld a) |