A common ACL2 programming idiom
When evaluation returns three values, where the first two are
ordinary (non-stobj) objects and the third is the ACL2 state,
the result may be called an ``error triple'' or ``error-triple''. If an error
triple is
ACL2 !>(+ 3 4) ; ordinary value 7 ACL2 !>(mv nil (+ 3 4) state) ; error triple, error component of nil 7 ACL2 !>(mv t (+ 3 4) state) ; error triple, non-nil error component ACL2 !>(mv nil :invisible state) ; special case for :INVISIBLE ACL2 !>
In certain settings, notably when printing evaluation results, multiple
values
ACL2 !>(mv nil (to-df 3) state) #d3.0 ACL2 !>
See programming-with-state for a discussion of error triples and how
to program with them. Also see ld-error-triples and see ld for
a discussion of the value