sprintf "%smatch %s with %s"
(match typ with None -> "" | Some t -> sprintf "<%s>" (pp_term t))
(pp_term term) (pp_patterns patterns)
+ | Cast (t1, t2) -> sprintf "(%s: %s)" (pp_term t1) (pp_term t2)
| LetIn (var, t1, t2) ->
sprintf "let %s = %s in %s" (pp_capture_variable var) (pp_term t1)
(pp_term t2)