Yes indeed.
I think it is hnf that Peter was talking about needing to be in IO, not unamb.Sure, so hnf would give us a non-determined result, but I don't think that makes unamb any less referentially transparent – the same value is always returned, and always reduced at least to hnf.
- Jake