Legend:
Library
Module
Module type
Parameter
Class
Class type
Streams supporting unbounded search. Technically, all streams should be infinite, but for efficiency, we allow them to be truncated. As such, it is impossible to define a general null predicate for streams. Here, we have null return true for the particular case that the stream is an empty list.