Wrong type for free variables in TypedFlatCurry
The front end produces for the program
last :: [a] -> a
last xs | xs ++ [x] =:= xs = x where x,xs free
a wrong type for the free variable xs
in the typed FlatCurry program. Here is an excerpt from the produced code:
(AFree (TVar 0) [(2,TVar 0),(3,TVar 0)] (ACase...
As one can see, both free variables the same type, but variable 3 should have the type
TCons ("Prelude","[]") [TVar 0]