Czy możliwe jest dopasowanie do rozłożonych sekwencji w F #?

Wydaje mi się, że pamiętam starszą wersję F #, która pozwala na dekompozycję strukturalną, gdy dopasowuje sekwencje tak jak listy. Czy istnieje sposób na użycie składni listy przy jednoczesnym zachowaniu leniwości sekwencji? Mam nadzieję uniknąć wielu połączeń do Seq.head i Seq.skip 1.

Mam nadzieję na coś takiego:

let decomposable (xs:seq<'a>) =
   match xs with
   | h :: t -> true
   | _ -> false
seq{ 1..100 } |> decomposable

Ale to tylko obsługuje listy i daje błąd typu podczas używania sekwencji. Używając List.of_seq, wydaje się, że ocenia wszystkie elementy w sekwencji, nawet jeśli jest nieskończony.

questionAnswers(3)

yourAnswerToTheQuestion