Pith. sign in

REVIEW 3 major objections 5 minor 31 references

Meta-emulation: An application to the social cost of carbon

T0 review · 3 major / 5 minor · reviewed 2026-08-06 · deepseek-v4-flash

Pith's one-line read A meta-emulator built from 14,152 published estimates corrects the social cost of carbon literature's assumption choices and finds that its reported estimates are biased downward, by $29 per tonne of carbon at the median.

desk verdict Meta-emulation is a useful new tool, but the variance arithmetic in the application is not correct, so the headline upward correction is not yet established. read the letter →

arxiv 2507.01804 v1 pith:OTVDWBIL submitted 2025-07-02 econ.EM

classification econ.EM
keywords socialcostofcarbonmeta-analysisquantileregressionmeta-emulationdiscountingpureratetimepreferenceclimatechangeimpactselasticityintertemporalsubstitution
verification ladder T0 review T1 audit T2 compute T3 formal

The pith

A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.

The reading

The paper proposes meta-emulation, a method that combines quantile regressions on a large database of published social cost of carbon estimates with external distributions of the underlying assumptions. The method corrects for the fact that the social cost of carbon literature deviates in its assumptions from the literatures on climate impacts, discounting, and risk aversion. Applying the method, the author finds that replacing the literature's distribution of the pure rate of time preference with expert distributions raises the median social cost of carbon by $21/tC (Drupp), $56/tC (Nesje), or $90/tC (Matousek), and the combined bias across three assumptions is $29/tC at the median. If the paper is right, most published point estimates of the social cost of carbon are downward biased, and policymakers should use the full emulated distribution when valuing carbon.

What carries the argument

The key object is the meta-emulator, defined by Equation (1): for each percentile $p$, the emulated social cost of carbon equals the observed percentile plus the sum over assumptions $s$ of the difference between the external and empirical frequency of each assumption value, multiplied by the quantile-regression coefficient $\beta_p$. The coefficients come from censored, quality-weighted quantile regressions of 14,152 published estimates on the pure rate of time preference, the inverse of the elasticity of intertemporal substitution, the impact of 2.5°C warming, and the year of publication. This identity lets the author shift an entire empirical distribution under counterfactual assumption distributions rather than only the mean.

What would settle it

A decisive test would be to hold out a subset of studies that used assumptions close to the external distributions and compare their actual social cost of carbon values with the meta-emulator's prediction for those assumption values; a systematic discrepancy would falsify the invariance of the slope coefficients. A simpler placebo, shifting an assumption distribution that should not matter, would also settle whether the emulator detects only genuine assumption effects.

Watch

Extended reading notes

Core claim

The central claim is that the distribution of published social cost of carbon estimates can be written as a function of the assumptions used to generate them, via quantile regression, and that this estimated function can be used to emulate what the distribution would have been had the literature used the assumption distributions found in expert surveys and meta-analyses of the relevant fields. The author finds that the literature on the social cost of carbon assumes too much impatience and, to a lesser extent, different climate impact assumptions, and that these choices push the social cost of carbon down. Correcting the assumptions, the emulated distribution is shifted upward, particularly in the right tail, and the differences are statistically significant at most quantiles.

Load-bearing premise

The load-bearing premise is that the quantile-regression slopes estimated from variation across published studies are unbiased and transportable, so that shifting the assumption distributions to external values changes the emulated distribution exactly as the empirical model prescribes.

Editorial extensions

If this is right

  • If the paper is correct, published point estimates of the social cost of carbon are systematically too low, and the bias is larger in the upper tail, so tail-sensitive analyses such as risk-averse cost-benefit rules would be more affected.
  • The meta-emulator provides a quick, parameterized alternative to running an integrated assessment model: policymakers can impose preferred distributions for time preferences, risk aversion, and climate impacts and immediately get an updated distribution of the social cost of carbon.
  • The method can be updated mechanically when new expert surveys or meta-analyses appear, and it can be extended to additional assumptions such as climate sensitivity or damage-function curvature.
  • The statistically significant differences between emulated and empirical distributions imply that meta-analysis of the social cost of carbon literature alone, without correcting assumption choices, understates both the central value and the uncertainty relevant to policy.

Reading between the lines

Editorial extensions of the paper, not claims the author makes directly.

  • A placebo test of the meta-emulator would be to apply it to an assumption distribution that should have no effect on the social cost of carbon, such as the year-of-publication distribution from a different field, and check whether the emulated distribution remains unchanged.
  • A direct validation would compare the emulator's counterfactual distribution with actual estimates from the small set of studies that already used assumptions close to the expert distributions, revealing whether the quantile slopes are invariant to other correlated study features.
  • If the downward-bias finding is correct, regulatory cost-benefit analyses that rely on a single point estimate, such as the U.S. interim social cost of carbon, are likely understating the benefits of emission reductions, especially for policy horizons with high discount rates.
  • The author's own earlier evidence of selective citation in this literature suggests the slope coefficients may themselves be affected by publication bias, so an extension that models selection explicitly could change the size of the emulated correction.
Share X Bluesky LinkedIn Reddit HN

Editorial analysis

A structured set of objections, weighed in public.

Desk editor's note, referee report, and a circularity audit.

Referee Report

3 major / 5 minor

Summary. The paper proposes a method called meta-emulation: using quantile regressions of published social cost of carbon (SCC) estimates on three assumptions (pure rate of time preference, inverse elasticity of intertemporal substitution, and economic impact of 2.5°C warming), controlling for publication year, and then shifting each empirical quantile by the estimated coefficient times the difference between the SCC literature's assumption distribution and alternative expert/meta-analytic distributions. Applying the method with alternative distributions from Drupp et al. (2022), Nesje et al. (2023), Matousek et al. (2022), Havranek et al. (2015a), and Tol (2024b), the paper reports that the SCC literature underestimates the social cost of carbon by $21-$90/tC at the median due to the pure rate of time preference, and by $29/tC at the median when combining all three assumptions.

Significance. If the central claims hold, the paper offers a low-cost way to impose preferred parameter distributions on the entire distribution of SCC estimates, which would be valuable for policy and for sensitivity analysis in the large SCC literature. The paper builds on a very large database (14,152 estimates), makes code and data public, and provides falsifiable predictions about how SCC quantiles shift with assumptions. The quantile-regression results have plausible signs and magnitudes. However, the headline results currently depend on a sign error in Equation (1), an incorrect variance formula in Equation (2), and an untested transportability assumption for the quantile-regression coefficients; these issues need to be resolved before the quantitative conclusions can be accepted.

major comments (3)
  1. [Section 2.2, Eq. (1)] Equation (1) has the wrong sign for the proposed counterfactual. The text defines F_{a,s} as the observed frequency in the SCC literature and P_{a,s} as the frequency according to the alternative expert/meta-analytic distribution, and SCC_{a,p} as the predicted SCC under the altered assumption. To replace the literature distribution with the alternative, the shift must be proportional to (P_{a,s} - F_{a,s}) X_{a,s} \beta_p, not (F_{a,s} - P_{a,s}) X_{a,s} \beta_p. As written, the equation predicts that using the expert distributions lowers the SCC (because the PRTP coefficient is negative and the experts favor lower discount rates), which is the opposite of the reported results in Section 3.2. This is a load-bearing issue: all numerical corrections and their signs need to be rechecked against a corrected equation.
  2. [Section 2.2, Eq. (2)] The variance formula in Equation (2) is incorrect for a single estimated coefficient. For fixed weights w_s = (F_{a,s} - P_{a,s}) X_{a,s}, Var(\sum_s w_s \beta_{a,p}) = (\sum_s w_s)^2 Var(\beta_{a,p}), not \sum_s w_s^2 Var(\beta_{a,p}). The displayed expression omits the cross terms \sum_{s \neq s'} w_s w_{s'}, which generally do not vanish and can be negative. Because the reported confidence intervals and all significance claims in Figures 8-13 are based on this formula, the uncertainty statements are not reliable. The multi-assumption combination in footnote 4 further assumes independence across assumptions, which conflicts with the paper's own statement in Section 3.3 that the assumptions correlate both in the SCC literature and in the expert surveys.
  3. [Section 2.2 and Appendix A, Table A2] The transportability of the quantile-regression coefficients is not established. The coefficients \beta_p are identified from cross-study variation in assumptions with only publication year controlled. Appendix A, Table A2 shows that studies using growth impacts differ systematically from level-impact studies in EIS and publication year, which is direct evidence of between-study confounding. The author's own Tol (2025) documents selective citation and clustering on assumptions, so the coefficients may absorb study features such as carbon-cycle model, climate sensitivity, or reporting bias. Without additional controls (e.g., a growth/level dummy, climate-sensitivity controls) or a sensitivity analysis that addresses selection, Equation (1) does not identify the causal effect of changing a single assumption. The paper should also test the linearity and invariance of the conditional quantile function, since the emulation assumes that the shift applies uniformly across the residual distribution.
minor comments (5)
  1. [Section 3.3, last paragraph] The sentence reporting the combined bias says "by $5/tC ... at the 5%ile, by $29/tC ... at the 5%ile, and by $139/tC ... at the 95%ile"; the second "5%ile" appears to be a typo, likely for the median (50th percentile), given the values and the surrounding discussion.
  2. [Figure 8 caption] The phrase "because of the perfect correlation between the other assumptions" is unclear; if the intended meaning is that the difference is significant despite correlations, the wording should be revised.
  3. [Equation (1) notation] The notation X_{a,s} is defined as "the vector of possible values s" but is used as a scalar in the summation; please clarify whether it denotes the support point value or a vector of covariates.
  4. [Introduction, last sentence] The sentence "Results are discussed in Section 2" should refer to Section 3, as Section 2 contains data and methods.
  5. [Footnote 4] The term "harmonic mean variance" is nonstandard; if the intended combination is precision-weighted averaging, it should be stated explicitly that independence is assumed, and the derivation should be shown.

Circularity Check

0 steps flagged · score 0.0 of 10

No significant circularity: the meta-emulator's counterfactual distributions come from external surveys and meta-analyses; the fitted coefficients do not make the headline correction definitional.

full rationale

The paper's central claim is that replacing the SCC literature's assumed distributions for the pure rate of time preference, the elasticity of intertemporal substitution, and climate impacts with distributions from external expert surveys and meta-analyses raises the social cost of carbon. Equation (1) is a counterfactual reweighting: it shifts the empirical SCC quantiles by the estimated quantile-regression coefficients times the difference between the literature frequencies and the alternative frequencies. The alternative distributions P_a,s are not derived from the SCC database under analysis; they come from Drupp et al. (2022), Nesje et al. (2023), Havranek et al. (2015a), Matousek et al. (2022), and Tol (2024b). The sign and magnitude of the headline correction therefore depend on external information and are not fixed by construction. The self-citations (Tol 2023, 2024a, 2024b, 2025) supply the database, weighting choices, and one of the alternative impact distributions, but none is an unverified uniqueness theorem or a forced assumption that makes the conclusion tautological. The Appendix A growth-impact analysis follows the same logic as an auxiliary check rather than a definitional identity. The standard-error formula in Equation (2) is a standard delta-rule calculation for a linear combination of estimated coefficients and known frequencies. The paper's own caveats about non-representative expert samples, an old meta-analysis, and the need for richer specifications speak to validity and robustness, not to circularity. The empirical SCC quantiles and the fitted betas are inputs, and the emulated distribution is a legitimate counterfactual prediction from those inputs; it is not equivalent to any single input by definition. Thus no circular step meets the required evidentiary standard.

Assumptions & free parameters 3 free parameters · 5 assumptions · 0 invented entities

The central counterfactual depends on (i) the regression slope coefficients estimated from the SCC literature, (ii) the external assumption distributions chosen as benchmarks, and (iii) the weighting and censoring rules that define the sample. The variance computations introduce two additional questionable formulas (Eq. 2 and the harmonic-mean combination), which are listed as an axiom since the paper relies on them for its significance claims.

free parameters (3)
  • author-defined quality weights = unpublished weights
    The database is reweighted via Tol (2023) rules ('implausible estimates are discounted, inconsistent ones disregarded'), with no definition of these criteria in this paper or the cited data descriptor. All regression coefficients and the emulated differences depend on these weights.
  • censoring rule for quantile regression = not stated
    The quantile regressions are 'censored and weighted as in Tol (2023)'. The censoring threshold is not given, so the effective sample is not reproducible from the text alone.
  • harmonic-mean combination rule = inverse-variance harmonic mean
    The joint bias in Figure 13 combines assumption-specific biases using the harmonic-mean variance formula, a choice made in footnote 4 without justification. This determines the width of the combined confidence bands.
assumptions (5)
  • domain assumption The quantile regression coefficients estimated from the published SCC literature are transportable to counterfactual assumption distributions, meaning the relationship is linear and the residual distribution is unchanged.
    Equation (1) shifts each observed percentile by beta_p times the change in the assumed input distribution; this assumes the same linear conditional quantile relationship holds outside the support of the observed assumption-assumption combinations, with no change in unobserved heterogeneity. No test of this transportability is provided.
  • domain assumption The expert and meta-analytic distributions (Drupp, Nesje, Matousek, Havranek, Tol 2024b) are valid benchmarks for 'correct' assumptions.
    The paper repeatedly compares the SCC literature to these distributions and labels the difference a 'bias'. The author says he does not argue who is right, but the conclusion that SCC is underestimated silently relies on these benchmarks being the appropriate reference.
  • domain assumption The weighting and data-cleaning rules of Tol (2023) produce an unbiased sample of the SCC literature.
    All estimates are quality-weighted and censored before the regressions. If these rules correlate with the assumptions under study, the estimated coefficients are biased.
  • standard math Standard quantile regression assumptions (no misspecification, censoring handled correctly) hold.
    The inference in Tables A1 and Figure 5 uses standard quantile regression asymptotic theory, which requires correct specification of the linear model and independent observations. The database contains multiple estimates per paper, so clustering is ignored.
  • ad hoc to paper Equation (2) correctly gives the variance of the emulated difference.
    The paper uses Eq. (2) to build all confidence intervals. We checked the derivation: with a single coefficient beta_{a,p}, Var(sum_s (F_s - P_s) X_s beta_{a,p}) = Var(beta_{a,p}) * (sum_s (F_s - P_s) X_s)^2, not the paper's sum-of-squares expression. The paper therefore relies on an incorrect variance formula.

how reviews work

0 comments
Cite this review

Pith. "Pith review of Meta-emulation: An application to the social cost of carbon." pith.science (2026). https://pith.science/paper/OTVDWBIL

@misc{pith2026250701804,
  author       = {Pith},
  title        = {Pith review of: Meta-emulation: An application to the social cost of carbon},
  year         = {2026},
  howpublished = {\url{https://pith.science/paper/OTVDWBIL}},
  note         = {Machine review of arXiv:2507.01804}
}
read the original abstract

A large database of published model results is used to estimate the distribution of the social cost of carbon as a function of the underlying assumptions. The literature on the social cost of carbon deviates in its assumptions from the literatures on the impacts of climate change, discounting, and risk aversion. The proposed meta-emulator corrects this. The social cost of carbon is higher than reported in the literature.

Figures

Figures reproduced from arXiv: 2507.01804 by the authors.

Figure 1
Figure 1. The histogram of published estimates of the social cost of carbon. [PITH_FULL_IMAGE:figures/full_fig_p007_1.png] view at source ↗
Figure 2
Figure 2. The histograms of the pure rate of time preference as used in the literature on the social cost of [PITH_FULL_IMAGE:figures/full_fig_p008_2.png] view at source ↗
Figure 3
Figure 3. The histograms of the elasticity of the marginal utility of consumption as used in the literature [PITH_FULL_IMAGE:figures/full_fig_p009_3.png] view at source ↗
Figures from the paper (10 more)
Figure 4
Figure 4. Figure 4: The histograms of the economic impact as used in the literature on the social cost of carbon and [PITH_FULL_IMAGE:figures/full_fig_p010_4.png]
Figure 5
Figure 5. Figure 5: The impact of the assumed pure rate of time preference on the distribution of published estimates [PITH_FULL_IMAGE:figures/full_fig_p011_5.png]
Figure 6
Figure 6. Figure 6: The impact of the inverse of the assumed elasticity of intertemporal substitution on the distribution [PITH_FULL_IMAGE:figures/full_fig_p012_6.png]
Figure 7
Figure 7. Figure 7: The impact of the assumed economic impact of climate change on the distribution of published [PITH_FULL_IMAGE:figures/full_fig_p013_7.png]
Figure 8
Figure 8. Figure 8: Cumulative distributions of the social cost of carbon following the literature and Drupp’s experts [PITH_FULL_IMAGE:figures/full_fig_p014_8.png]
Figure 9
Figure 9. Figure 9: The difference between the empirical and emulated cumulative distributions of the social cost of [PITH_FULL_IMAGE:figures/full_fig_p015_9.png]
Figure 10
Figure 10. Figure 10: The difference between the empirical and emulated cumulative distributions of the social cost of [PITH_FULL_IMAGE:figures/full_fig_p016_10.png]
Figure 11
Figure 11. Figure 11: The marginal impact of assumptions on the benchmark impact of climate change on the cumu [PITH_FULL_IMAGE:figures/full_fig_p017_11.png]
Figure 12
Figure 12. Figure 12: The marginal impact of assumptions on the parameters of the Ramsey rule on the cumulative [PITH_FULL_IMAGE:figures/full_fig_p018_12.png]
Figure 13
Figure 13. Figure 13: The marginal impact of all three assumptions on the cumulative distribution of the social cost [PITH_FULL_IMAGE:figures/full_fig_p019_13.png]

Discussion (0). Sign in to comment.

Reference graph

Works this paper leans on

31 extracted references · 24 canonical work pages

  1. [1]

    , " * write output.state after.block = add.period write newline

    ENTRY address author booktitle chapter edition editor howpublished institution journal key month note number organization pages publisher school series title type url volume year label extra.label sort.label short.list INTEGERS output.state before.all mid.sentence after.sentence after.block FUNCTION init.state.consts #0 'before.all := #1 'mid.sentence := ...

  2. [2]

    write newline

    " write newline "" before.all 'output.state := FUNCTION n.dashify 't := "" t empty not t #1 #1 substring "-" = t #1 #2 substring "--" = not "--" * t #2 global.max substring 't := t #1 #1 substring "-" = "-" * t #2 global.max substring 't := while if t #1 #1 substring * t #2 global.max substring 't := if while FUNCTION word.in bbl.in capitalize ":" * " " *...

  3. [3]

    write newline

    " write newline "" before.all 'output.state := FUNCTION n.dashify 't := "" t empty not t #1 #1 substring "-" = t #1 #2 substring "--" = not "--" * t #2 global.max substring 't := t #1 #1 substring "-" = "-" * t #2 global.max substring 't := while if t #1 #1 substring * t #2 global.max substring 't := if while FUNCTION word.in bbl.in ":" * " " * FUNCTION f...

  4. [4]

    write newline

    " write newline "" before.all 'output.state := FUNCTION n.dashify 't := "" t empty not t #1 #1 substring "-" = t #1 #2 substring "--" = not "--" * t #2 global.max substring 't := t #1 #1 substring "-" = "-" * t #2 global.max substring 't := while if t #1 #1 substring * t #2 global.max substring 't := if while FUNCTION word.in bbl.in ":" * " " * FUNCTION f...

  5. [5]

    Anthoff, David, and Richard S. J. Tol. 2022. Testing the dismal theorem. Journal of the Association of Environmental and Resource Economists 9 (5): 885--920

  6. [6]

    Drupp, Moritz A., Frikk Nesje, and Robert C. Schmidt. 2022. Pricing carbon. Papers, CESifo

  7. [7]

    Estrada, Francisco, and Richard S. J. Tol. 2015. Toward Impact Functions For Stochastic Climate Change . Climate Change Economics 6 (04): 1--13

  8. [8]

    Estrada, Francisco, Richard S. J. Tol, and Botzen W. J. Wouter. 2025. Economic consequences of the spatial variation and temporal variability of climate change. Annals of the New York Academy of Sciences

Show all 31 references
  1. [9]

    Fankhauser, Samuel, and Richard S. J. Tol. 2005. On climate change and economic growth. Resource and Energy Economics 27 (1): 1--17

  2. [10]

    Havránek, Tomáš, Roman Horvath, Zuzana Irsova, and Marek Rusnak. 2015 a . Cross-country heterogeneity in intertemporal substitution. Journal of International Economics 96 (1): 100 – 118

  3. [11]

    Havránek, Tomáš, Zuzana Irsova, Karel Janda, and David Zilberman. 2015 b . Selective reporting and the social cost of carbon. Energy Economics 51: 394 -- 406

  4. [12]

    Interagency Working Group on the Social Cost of Carbon . 2021. Technical support document: Social cost of carbon, methane, and nitrous oxide interim estimates under executive order 13990. Report, United States Government

  5. [13]

    Matousek, Jindrich, Tomas Havranek, and Zuzana Irsova. 2022. Individual discount rates: a meta-analysis of experimental evidence. Experimental Economics 25 (1): 318 – 358

  6. [14]

    Drupp, James Rising, Simon Dietz, Ivan Rudik, and Gernot Wagner

    Moore, Frances C., Moritz A. Drupp, James Rising, Simon Dietz, Ivan Rudik, and Gernot Wagner. 2024. Synthesis of evidence yields high social cost of carbon due to structural model variation and uncertainties. Proceedings of the National Academy of Sciences 121 (52): e2410733121

  7. [15]

    Drupp, Mark C

    Nesje, Frikk, Moritz A. Drupp, Mark C. Freeman, and Ben Groom. 2023. Philosophers and economists agree on climate policy paths but for different reasons. Nature Climate Change 13 (6): 515 – 522

  8. [16]

    Stern, Nicholas H., Siobhan Peters, Vicky Bakhski, Alex Bowen, Catherine Cameron, Sebastian Catovsky, Diane Crane, et al. 2006. Stern Review: The Economics of Climate Change. London: HM Treasury

  9. [17]

    Tol, Richard S. J. 2023. Social cost of carbon estimates have increased over time. Nature Climate Change 13: 532--536

  10. [18]

    --- --- ---. 2024 a . Database for the meta-analysis of the social cost of carbon (v2024.1). Papers 2402.09125, arXiv.org

  11. [19]

    --- --- ---. 2024 b . A meta-analysis of the total economic impact of climate change. Energy Policy 185: 113922

  12. [20]

    --- --- ---. 2025. Trends and biases in the social cost of carbon. Annals of the New York Academy of Sciences

  13. [21]

    write newline

    " write newline "" before.all 'output.state := FUNCTION n.dashify 't := "" t empty not t #1 #1 substring "-" = t #1 #2 substring "--" = not "--" * t #2 global.max substring 't := t #1 #1 substring "-" = "-" * t #2 global.max substring 't := while if t #1 #1 substring * t #2 gl...

  14. [22]

    write newline

    " write newline "" before.all 'output.state := FUNCTION n.dashify 't := "" t empty not t #1 #1 substring "-" = t #1 #2 substring "--" = not "--" * t #2 global.max substring 't := t #1 #1 substring "-" = "-" * t #2 global.max substring 't := while if t #1 #1 substring * t #2 gl...

  15. [23]

    write newline

    " write newline "" before.all 'output.state := FUNCTION n.dashify 't := "" t empty not t #1 #1 substring "-" = t #1 #2 substring "--" = not "--" * t #2 global.max substring 't := t #1 #1 substring "-" = "-" * t #2 global.max substring 't := while if t #1 #1 substring * t #2 gl...

  16. [24]

    write newline

    " write newline "" before.all 'output.state := FUNCTION n.dashify 't := "" t empty not t #1 #1 substring "-" = t #1 #2 substring "--" = not "--" * t #2 global.max substring 't := t #1 #1 substring "-" = "-" * t #2 global.max substring 't := while if t #1 #1 substring * t #2 gl...

  17. [25]

    write newline

    " write newline "" before.all 'output.state := FUNCTION n.dashify 't := "" t empty not t #1 #1 substring "-" = t #1 #2 substring "--" = not "--" * t #2 global.max substring 't := t #1 #1 substring "-" = "-" * t #2 global.max substring 't := while if t #1 #1 substring * t #2 gl...

  18. [26]

    write newline

    " write newline "" before.all 'output.state := FUNCTION n.dashify 't := "" t empty not t #1 #1 substring "-" = t #1 #2 substring "--" = not "--" * t #2 global.max substring 't := t #1 #1 substring "-" = "-" * t #2 global.max substring 't := while if t #1 #1 substring * t #2 gl...

  19. [27]

    write newline

    " write newline "" before.all 'output.state := FUNCTION n.dashify 't := "" t empty not t #1 #1 substring "-" = t #1 #2 substring "--" = not "--" * t #2 global.max substring 't := t #1 #1 substring "-" = "-" * t #2 global.max substring 't := while if t #1 #1 substring * t #2 gl...

  20. [28]

    write newline

    " write newline "" before.all 'output.state := FUNCTION n.dashify 't := "" t empty not t #1 #1 substring "-" = t #1 #2 substring "--" = not "--" * t #2 global.max substring 't := t #1 #1 substring "-" = "-" * t #2 global.max substring 't := while if t #1 #1 substring * t #2 gl...

  21. [29]

    write newline

    " write newline "" before.all 'output.state := FUNCTION n.dashify 't := "" t empty not t #1 #1 substring "-" = t #1 #2 substring "--" = not "--" * t #2 global.max substring 't := t #1 #1 substring "-" = "-" * t #2 global.max substring 't := while if t #1 #1 substring * t #2 gl...

  22. [30]

    write newline

    " write newline "" before.all 'output.state := FUNCTION n.dashify 't := "" t empty not t #1 #1 substring "-" = t #1 #2 substring "--" = not "--" * t #2 global.max substring 't := t #1 #1 substring "-" = "-" * t #2 global.max substring 't := while if t #1 #1 substring * t #2 gl...

  23. [31]

    write newline

    " write newline "" before.all 'output.state := FUNCTION n.dashify 't := "" t empty not t #1 #1 substring "-" = t #1 #2 substring "--" = not "--" * t #2 global.max substring 't := t #1 #1 substring "-" = "-" * t #2 global.max substring 't := while if t #1 #1 substring * t #2 gl...

Pith tools

Reviewed August 6, 2026 · model on record in the stance chip above.