Goblint_std.GobListThe normal haskell zip that throws no exception
remove_common_prefix eq l1 l2 removes the common prefix (p) of l1 and l2 and returns the rest of both lists a pair (l1', l2'). Formally, p @ l1' = l1 and p @ l2' = l2 such that p has maximal length.
This can be used to check being a prefix in both directions simultaneously:
l1' = [], then l1 is a prefix of l2,l2' = [], then l2 is a prefix of l1.In other cases, the common prefix is not returned (i.e. reconstructed) for efficiency reasons.
Given a predicate and a list, returns two lists (l1, l2). l1 contains the prefix of the list until the last element that satisfies the predicate, l2 contains all subsequent elements. The order of elements is preserved.
module Syntax : sig ... endOpen this to use applicative functor/monad syntax for list.