
Hi, I created (with help) a function to test for prime numbers. It worked well enough for now in ghci. ---------------- f x n y | n>y = True | rem x n == 0 = False | otherwise = f x (n+1) y primeQ x = f x 2 y where y = floor(sqrt(fromIntegral x)) --------------- I then wanted to create object code so that I could import it. It seemed that I had to precede the above with the 2 lines: ---------------- module Prime where ---------------- I ran: ghc -c prime.hs, and created prime.o and prime.hi. Next, I wanted to write a program to import and use this function. I wrote: ------------ module Main () where import Prime main = primeQ 123 ------------ I tried to compile this with: ghc -o test Main.hs prime.o I got the following error: Main.hs:5:0: Couldn't match expected type 'IO t' against inferred type 'Bool' In the expression: main When checking the type of the function 'main' ---------------- First I'd like a hint as to what I need to do to make this work. It's pretty obvious that I don't know what I'm doing with regard to types. Also, I have no idea if I have to name this module Main, but when I didn't the compiler complained about that. In the function that I think I had to re-write to make object code, I wound up with 2 where statements, which worries me. I'd really appreciate any help in getting me unraveled. Mitchell