f <!> gen
'T -> 'U
Gen<'T>
Gen<'U>
f <*> gen
Gen<('T -> 'U)>
gen >>= f
'T -> Gen<'U>
Type something to start searching.