9.11. Pattern Guard

unzip {A B: Any}: List (A, B) -> (List A, List B)
:= case
    \ [] :=
        ([], [])

    \ (x, y) :: xys :=
        match unzip xys case
            \ (xs, ys) := (x :: xs, y :: ys)

-- with a pattern guard

    \ (x, y) :: yxs with
        unzip xys
        \ (xs, xy) := (x :: xs, y :: ys)

Just syntactic sugar. Easier to read, less indentation.

Question: How to make it parseable. Is it really worthwile, the original code already is well readable.