In Effect, things are constructed and combined, and at the end everything is ran. I'm reading this as lazy computation. But somehow the Schema.decode(), which produces an Effect as output, already decodes the value at call time, so the returned Effect already has the computed value. I don't know if I'm missing some concept in this situation. I'd appreciate any help on this.