|
|
|
|
|
|
|
|
|
|
|
# Relaxed Dependency Analysis
|
|
|
# Proposal: Relaxed Dependency Analysis
|
|
|
|
|
|
|
|
|
## Brief Explanation
|
|
|
<table><tr><th> Ticket </th>
|
|
|
<th> [\#65](https://gitlab.haskell.org//haskell/prime/issues/65)
|
|
|
</th></tr>
|
|
|
<tr><th> Dependencies </th>
|
|
|
<th> none
|
|
|
</th></tr>
|
|
|
<tr><th> Related </th>
|
|
|
<th> none
|
|
|
</th></tr></table>
|
|
|
|
|
|
|
|
|
## Compiler support
|
|
|
|
|
|
|
|
|
<table><tr><th> GHC </th>
|
|
|
<th> full
|
|
|
</th></tr>
|
|
|
<tr><th> nhc98 </th>
|
|
|
<th> full
|
|
|
</th></tr>
|
|
|
<tr><th> Hugs </th>
|
|
|
<th> full
|
|
|
</th></tr>
|
|
|
<tr><th> UHC </th>
|
|
|
<th> ?
|
|
|
</th></tr>
|
|
|
<tr><th> JHC </th>
|
|
|
<th> full
|
|
|
</th></tr>
|
|
|
<tr><th> LHC </th>
|
|
|
<th> full
|
|
|
</th></tr></table>
|
|
|
|
|
|
|
|
|
## Summary
|
|
|
|
|
|
|
|
|
|
... | ... | @@ -31,7 +65,7 @@ As with many operations on non-regular (or nested) types, `zig` and `zag` need t |
|
|
|
|
|
|
|
|
|
|
|
However GHC, Hugs, Nhc98, and jhc follow the suggestion of Mark Jones that the dependency analysis should ignore references to variables that have an explicit type signature. Hence `zag` does not depend on `zig`, and we can infer the type
|
|
|
Mark Jones suggested that the dependency analysis should ignore references to variables that have an explicit type signature, and most compilers already implement this. Hence `zag` does not depend on `zig`, and we can infer the type
|
|
|
|
|
|
|
|
|
```wiki
|
... | ... | @@ -46,22 +80,7 @@ and then go on to successfully check the type signature of `zig`. |
|
|
Dependency groups are smaller, and more programs type-check.
|
|
|
|
|
|
|
|
|
## References
|
|
|
|
|
|
|
|
|
- [ Dependency Analysis](http://haskell.org/onlinereport/decls.html#sect4.5.1) in the Haskell 98 Report
|
|
|
- [ Typing Haskell in Haskell](http://www.cse.ogi.edu/~mpj/thih/), Mark Jones, Haskell Workshop 1999.
|
|
|
|
|
|
## Tickets
|
|
|
|
|
|
|
|
|
|
|
|
<table><tr><th>[\#65](https://gitlab.haskell.org//haskell/prime/issues/65)</th>
|
|
|
<td>RelaxedDependencyAnalysis</td></tr></table>
|
|
|
|
|
|
|
|
|
|
|
|
## Proposal
|
|
|
## Description
|
|
|
|
|
|
|
|
|
|
... | ... | @@ -90,3 +109,12 @@ Modify the definition of dependency group in the above section to |
|
|
The semi-formal rules in the rest of the section would have to go: it would no longer be possible to make binding groups explicit with a source-to-source transformation.
|
|
|
|
|
|
|
|
|
## References
|
|
|
|
|
|
|
|
|
- [ Dependency Analysis](http://haskell.org/onlinereport/decls.html#sect4.5.1) in the Haskell 98 Report
|
|
|
- [ Typing Haskell in Haskell](http://www.cse.ogi.edu/~mpj/thih/), Mark Jones, Haskell Workshop 1999.
|
|
|
|
|
|
## Report Delta
|
|
|
|
|
|
|