sig
type +'a stream
val fork : ('a -> 'b) * ('a -> 'c) -> 'a -> 'b * 'c
val take : int -> 'a Streams.stream -> 'a list
val unfold : ('a -> 'b * 'a) -> 'a -> 'b Streams.stream
val univ : ('a -> 'b) * ('a -> 'a) -> 'a -> 'b Streams.stream
val hd : 'a Streams.stream -> 'a
val tl : 'a Streams.stream -> 'a Streams.stream
val repeat : 'a -> 'a Streams.stream
val map : ('a -> 'b) -> 'a Streams.stream -> 'b Streams.stream
val diag : 'a Streams.stream Streams.stream -> 'a Streams.stream
val suffixes : 'a Streams.stream -> 'a Streams.stream Streams.stream
val interleave :
'a Streams.stream -> 'a Streams.stream -> 'a Streams.stream
val fibs : int Streams.stream
val pi : float Streams.stream
val look_and_say : int list Streams.stream
end