Is it possible to cast an Integer to an Int? The other direction is possible: toInteger. I know that Integer is able to store bigger values, but sometimes a conversation is needed to use functions in the standard library. I tried (n :: Int) and other code samples I found – but nothing works.
takeN :: Integer -> [a] -> [a]
takeN n l = take n l
Use
fromIntegral.Note that
fromIntegral :: (Integral a, Num b) => a -> b, so sometimes you will need an extra type annotation (e.g.(fromIntegral n :: Int)), but usually the compiler can infer which type you want.In the special case of your example, in
Data.Listthere isgenericTake :: (Integral i) => i -> [a] -> [a], which does the same thing astakebut with a more general type.