[RankNTypes] Compilation error
Using the most recent version including arbitrary rank types, compilation of the PAKCS' toolsuite results in an error. The last lines of the log file are given below.
[40 of 62] Compiling Analysis.RightLinearity ( /home/fte/Projects/University/higher-rank-polymorphism/currytools/optimize/.cpm/packages/cass-analysis/src/Analysis/RightLinearity.curry, /home/fte/Projects/University/higher-rank-polymorphism/currytools/optimize/.cpm/packages/cass-analysis/src/.curry/Analysis/RightLinearity.fcy )
/home/fte/Projects/University/higher-rank-polymorphism/currytools/optimize/.cpm/packages/cass-analysis/src/Analysis/RightLinearity.curry, line 59.1: Error:
Ambiguous type variable _39
in type Prelude.Eq _39 => FlatCurry.Types.Expr ->
Prelude.Maybe [Prelude.Int]
inferred for equation
linearVariables (Comb _ f es)
| (f == ("Prelude", "?")) && (length es == 2) =
linearVariables (Or (head es) (head (tail es)))
| otherwise =
mapMMaybe linearVariables es >>-
(\esvars ->
let vars = concat esvars
in if nub vars == vars then Just vars else Nothing)
/home/fte/Projects/University/higher-rank-polymorphism/currytools/optimize/.cpm/packages/cass-analysis/src/Analysis/RightLinearity.curry, line 70.1: Error:
Ambiguous type variable _85
in type Prelude.Eq _85 => FlatCurry.Types.Expr ->
Prelude.Maybe [Prelude.Int]
inferred for equation
linearVariables (Let bs e) =
mapMMaybe linearVariables (map snd bs) >>-
(\bsvars ->
linearVariables e >>-
(\evars ->
let vars = concat (evars : bsvars)
in if nub vars == vars
then Just (vars \\ (map fst bs))
else Nothing))
ERROR occurred during parsing!
Makefile:29: recipe for target 'BindingOpt' failed
make[3]: *** [BindingOpt] Error 1
make[3]: Leaving directory '/home/fte/Projects/University/higher-rank-polymorphism/currytools/optimize'
Makefile:163: recipe for target 'kernel' failed
make[2]: *** [kernel] Error 2
make[2]: Leaving directory '/home/fte/Projects/University/higher-rank-polymorphism'
Makefile:155: recipe for target 'build' failed
make[1]: *** [build] Error 2
make[1]: Leaving directory '/home/fte/Projects/University/higher-rank-polymorphism'
Make process logged in file make.log