impc:ti:polyfunc-pretty-print   scheme


Defined in:  https://github.com/digego/extempore/tree/v0.8.9/runtime/llvmti.xtm

Implementation

;; remap impc:ir:poly-print-all
(define impc:ti:polyfunc-pretty-print
  (lambda (polyfunc-name)
    (let ((candidates (impc:ti:get-polyfunc-candidate-list polyfunc-name)))
      (and candidates
           (begin
             (print "Polymorphic options for ")
             (print-with-colors *impc:compiler:pretty-print-name-color* 'default #t (print polyfunc-name))
             (println)
             (for-each (lambda (func-vector)
                         ;; perhaps this should (regex:split (vector-ref func-vector 0) "_poly_") to clean the generic ones up a bit?
                         (print "  ")
                         (print-with-colors *impc:compiler:pretty-print-code-color* 'default #f (print (vector-ref func-vector 0)))
                         (print ":")
                         (print-with-colors *impc:compiler:pretty-print-type-color* 'default #f (print (impc:ir:pretty-print-type (vector-ref func-vector 1))))
                         (println))
                       candidates))))))


Back to Index