FStarLang / FStarLang/FStar

strict_on_arguments blocking normalization

Open
#2,191 0 comments 0 reactions 0 assignees View on GitHub
component/normalizer
Dominant language
F*
Stars
3.1k
Forks
266
Avg merge
21h 1m
Merged PRs (30d)
54

Description

Another issue with the normalizer being stuck on `strict_on_arguments` while it shouldn't:
```
[@(strict_on_arguments [1])]
let f1 (x y : unit) = ()
let f2 = f1 ()
let x = f2 () // Reduces to [f1 () ()] instead of [()]
```
Note that `x` reduces correctly if we define:
```
let f2 y = f1 () y
```

Contributor guide

Open the contributing guide

Research direction

Start by tracing the normalizer behavior for strict_on_arguments using the minimal f1, f2, and x example in the issue. Compare it with the wrapper form that reduces correctly, and verify that the original form reduces to the expected unit value.

Written by the indexing model from the issue text.

Assessment

Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.