Buenas noches, quisiera consultarles sobre lo siguiente, tengo estas dos funciones
 

-- Calcula Raiz Wn

wn n = cos c :+ (-1*sin c) where c=2*pi/n

 

twiddlefactor r k =

     concat [(map (^i) [(wn rs)^i | i<-[0..s-1]])| i<-[0..r-1]]

       where

        rs = (r^k) ;

        s = (r^(k-1))

la dificultad que tengo es que twiddlefactor no me acepta enteros

compila pero no me acepta los parametros, sin embargo si la defino como

       

--Calcula vector de Twiddle Factor

twiddlefactor r s rs= concat [(map (^i) diag) | i<-[0..r-1]]

     where

       diag = [(wn rs)^i | i<-[0..s-1]]

no tengo problema, lo que sucede es que posteriormente esta definicion me es inconveniente pues el valor de rs es r^k y lo necesito en un programa recursivo, que me esta dando inconvenientes precisamente por que debo estar reenviando el valor r^k.  Agradezco la ayuda que puedan darme