From: Matthijs Kooijman <matthijs@stdin.nl>
Date: Tue, 1 Dec 2009 19:28:49 +0000 (+0100)
Subject: Add TODO.
X-Git-Url: https://git.stderr.nl/gitweb?a=commitdiff_plain;h=a944d5b3a8ec72f5ee72c9555869fca7e39239fa;p=matthijs%2Fmaster-project%2Fc%CE%BBash.git

Add TODO.
---

diff --git "a/c\316\273ash/CLasH/Normalize.hs" "b/c\316\273ash/CLasH/Normalize.hs"
index 4743824..a06094b 100644
--- "a/c\316\273ash/CLasH/Normalize.hs"
+++ "b/c\316\273ash/CLasH/Normalize.hs"
@@ -616,6 +616,11 @@ argprop expr@(App _ _) | is_var fexpr = do
           let free_vars = VarSet.varSetElems $ CoreFVs.exprSomeFreeVars interesting arg
           -- Mark the current expression as changed
           setChanged
+          -- TODO: Clone the free_vars (and update references in arg), since
+          -- this might cause conflicts if two arguments that are propagated
+          -- share a free variable. Also, we are now introducing new variables
+          -- into a function that are not fresh, which violates the binder
+          -- uniqueness invariant.
           return (map Var free_vars, free_vars, arg)
         else do
           -- Representable types will not be propagated, and arguments with free