; Do unit propagation on `f`, constructing a UP model for it.
-(program build_up_model ((f cnf)) clause
+(program build_up_model ((f cnf)) UPConstructionResult
(match (unit_search f)
(USRBottom UPCRBottom)
(USRNoUnit (UPCRModel cln))
; Given some starting assignment (`up_model`), continue UP to construct a larger
; model.
-(program extend_up_model ((f cnf) (up_model clause)) clause
+(program extend_up_model ((f cnf) (up_model clause)) UPConstructionResult
(do (clause_into_global up_model)
(let result (build_up_model f)
(do (clause_undo_into_global up_model)