
Hi, I'm still working with YHC Core to try to eventually to convert to Java. I'm having a little bit of trouble trying to fully understand the semantics of the YHC Core language. I've translated increase x = x+1 into Core for a simple example. The Core produced is Core { coreName :: Increase coreImports :: [Data.Ratio,Prelude] coreDatas :: [ [] coreFuncs :: [ CoreFunc { coreFuncName :: Increase.increase coreFuncArgs :: [v207,v208] coreFuncBody :: CorePos 4:1-4:16 (CoreApp ( CoreApp ( CoreFun Prelude.+ ) [CoreVar v207] ) [CoreVar v208,CoreApp ( CoreApp ( CoreFun Prelude.fromInteger ) [CoreVar v207] ) [CoreInteger 1]]) } ] } The bit I'm having trouble with is the CoreApp's they have an expression and a list of expressions, does this mean that the first expression should be applied to each element of the list? In particular from above (CoreApp (CoreApp (CoreFun Prelude.+) [CoreVar v207]) [ CoreVar v208, CoreApp (CoreApp (CoreFun Prelude.fromInteger) [CoreVar v207]) [CoreInteger 1] ] ) so is v208 the 1 from the original Haskell? If so why is it then explicitly mentioned (CoreIntger 1)? This function originally took 1 argument it now takes 2. As you can tell I'm a little confused! If anyone can enlighten me It'd be appreciated. Many Thanks, Ricky Barefield