(define impc:ir:compile:create_zone
(lambda (ast types)
(let* ((os (make-string 0))
(size-str (impc:ir:compiler (cadr ast) types))
(size (impc:ir:gname)))
;;(println 'size: size)
(if (<> (impc:ir:get-type-from-str (cadr size)) *impc:ir:si64*)
(impc:compiler:print-needs-zone-size-error 'create_zone))
(emit size-str os) ;; write size str
(emit (impc:ir:gname "ret" "%mzone*")
" = call %mzone* @llvm_zone_create(i64 " (car size) ")\n" os)
(impc:ir:strip-space os))))