On Tue, Sep 6, 2022 at 5:39 PM Marc Nieper-Wißkirchen <[email protected]> wrote:
there cannot be an > implementation, portable or not, on every Scheme implementation that > is allowed by R7RS. (As I tried to explain earlier, even access to > something like "%true-promise" would not help.) I continue to find your explanation incomprehensible, but I'll add a warning saying that on an unusual implementation of Scheme promises, it is not possible to treat promises as thunks; however, no such implementations are known. I would > 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. At the same time, we should close off the "promise = result" and "promises are implicitly forced in certain cases" options. I don't feel very strongly about "polymorphic `force`" as long as the other cases are suppressed.
