val eval :
'a ->
'a ->
('a, 'a) t ->
[ `Await of ('a, 'a) t
| `Flush of ('a, 'a) t
| `End of ('a, 'a) t
| `Error of ('a, 'a) t * error ]val refill : int -> int -> ('i, 'o) t -> ('i, 'o) tval flush : int -> int -> ('i, 'o) t -> ('i, 'o) tval used_out : ('i, 'o) t -> int