Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
S
sgdt
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
gradual-typing
sgdt
Commits
8edd24be
Commit
8edd24be
authored
6 years ago
by
Amal Ahmed
Browse files
Options
Downloads
Patches
Plain Diff
edits to response
parent
693dc0bf
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
popl19/response2.md
+10
-9
10 additions, 9 deletions
popl19/response2.md
with
10 additions
and
9 deletions
popl19/response2.md
+
10
−
9
View file @
8edd24be
...
...
@@ -12,7 +12,7 @@ generally any pattern match) out of a lambda are very common in
refactoring and optimization.
In terms of "actionable" theorems, we show that upcasts form complex
values and downc
s
ats form complex stacks, which also justifies
values and downca
s
ts form complex stacks, which also justifies
refactorings and optimizations. For instance, upcasts, as complex
values, can be freely (de)-duplicated, discarded if not used, and lifted
out of loops as if they were values. Downcasts, as complex stacks, are
...
...
@@ -68,19 +68,20 @@ very rare in Typed Racket).
downcasts.
The use of ? in the factorization of a cast A => B can be replaced
with any type D that is more dynamic than both A and B. We don't k
o
nw
with any type D that is more dynamic than both A and B. We don't kn
o
w
of any systems where a cast A => B is allowed but they have no common
dynamism-supertype.
6.
Reviewer C says that we "restrict to non-effectful programs" and
finds it surprising because "blame is an effect".
This is not what we intended by that comment in the intro (which is only
explaining that the eta rule in traditional call-by-value is restricted
to values). In this paper, we do treat dynamic type errors as an effect,
and as Reviewer D notes, this is one of the main reasons we use CBPV: to
have an axiomatic theory that is valid in the presence of arbitrary
effects.
We _do_ treat dynamic type errors as an effect, and as Reviewer D notes, this is
one of the main reasons we use CBPV: to have an axiomatic theory that is valid
in the presence of arbitrary effects.
The comment in the intro where we say "restrict to non-effectful code" concerns
the eta rule (explaining the eta rule in traditional call-by-value is restricted
to values or non-effectful code).
7.
Reviewer A asks "(l35) eta is mostly used in one direction for optimization, it's
the other direction that fails for these cases right?"
...
...
@@ -104,4 +105,4 @@ specification of casts.
We will also add a discussion of Degen and Thiemann's work, which is
related: their completeness property inherently violates CBN eta
principles, so is incompatible with "lazy" checking.
\ No newline at end of file
principles, so is incompatible with "lazy" checking.
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment