#NEWLINE# def symbolic_call( fn , abstract_inputs ) : #NEWLINE# #INDENT# if ( fn . __class__ is Closure ) : #NEWLINE# #INDENT# closure_elts = tuple ( fn . args ) #NEWLINE# fn = fn . fn #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# closure_elts = ( ) #NEWLINE# #UNINDENT# abstract_result_value = call_shape_expr ( conv ) #NEWLINE# conv = shape_from_type . Converter ( ) #NEWLINE# shape_formals = conv . from_types ( fn . input_types ) #NEWLINE# env = { #NEWLINE# #INDENT# #NEWLINE# #UNINDENT# } #NEWLINE# bind_pairs ( shape_formals , ( closure_elts + tuple ( abstract_inputs ) ) , env ) #NEWLINE# return subst ( abstract_result_value , env )