import Data.List (elemIndex) sb :: [Int] sb = 1 : 1 : f (tail sb) sb where f (a:aa) (b:bb) = a + b : a : f aa bb main :: IO () main = do print $ take 15 sb print [ (i, 1 + (\(Just i) -> i) (elemIndex i sb)) | i <- [1 .. 10] ++ [100] ] print $ all (\(a, b) -> 1 == gcd a b) $ take 1000 $ zip sb (tail sb)