F#의 type inference는 Haskell을 쓸 때보다 주의할 점이 있다. 예제로, 수 목록을 구간 목록으로 변환하는 프로그램을 작성해보았다. F#에서는 이렇게 리스트에 대해 .[0]을 사용하면 타입 선언 없이는 컴파일되지 않는다: let addToIntervals (intervals: (int * int) list) (n: int) = if not intervals.IsEmpty && n = (fst intervals.[0]) - 1 then (n, (snd intervals.[0])) :: (List.tail intervals) else (n, n) :: intervals let toIntervals (nums: int list) = List.fold addToIntervals [] (List..