[commit: ghc] master: RAE's response to SPJ's question in flattening-notes (5818378)

git at git.haskell.org git at git.haskell.org
Mon Dec 8 15:31:55 UTC 2014


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/5818378db95a97cb4760afdab41bdf8f6ed07272/ghc

>---------------------------------------------------------------

commit 5818378db95a97cb4760afdab41bdf8f6ed07272
Author: Richard Eisenberg <eir at cis.upenn.edu>
Date:   Mon Dec 8 10:32:21 2014 -0500

    RAE's response to SPJ's question in flattening-notes


>---------------------------------------------------------------

5818378db95a97cb4760afdab41bdf8f6ed07272
 compiler/typecheck/Flattening-notes | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/compiler/typecheck/Flattening-notes b/compiler/typecheck/Flattening-notes
index 35f2f2d..657e91e 100644
--- a/compiler/typecheck/Flattening-notes
+++ b/compiler/typecheck/Flattening-notes
@@ -225,3 +225,8 @@ rewrite
 Well, it depends on the roles at which T uses its arguments :-(.
 So it may not be enough just to look at (flavour,role) pairs?
 
+RAE: This is true, but it is taken care of by being careful in the
+flattening algorithm. Flattening (T a) looks at the roles of
+T's parameters, and chooses the role for flattening `a` appropriately.
+This is why there must be the [Role] parameter to flattenMany.
+Of course, this non-uniform rewriting may gum up the proof works.



More information about the ghc-commits mailing list