> suggest either making promises a disjoint type or making them > indistinguishable from ordinary values, which would mean implicit > forcing and probably a Haskell-like kernel for Scheme. > > IMO the second option would be extremely destructive to the Scheme > effort: all existing Schemes would have to be not just modified but > discarded. The first option is feasible and indeed desirable. +1 to a reliable `promise?` predicate. Implicit forcing makes it harder to reason about efficiency. That goes against one of the core values of Scheme. (IMHO one of the most important values.)