Combinator based implementation of proof search