module type Lambda_calculus =sig
..end
type 'a
repr
val lambda : ('a repr ->
'b repr) ->
('a -> 'b) repr
val apply : ('a -> 'b) repr ->
'a repr ->
'b repr
type 'a
observation
val observe : (unit -> 'a repr) ->
'a observation