(local fennel (require :fennel)) (import-macros {: def : q : ttype : static : unterra : untype} :terra) (local Complex (ttype {real float imag float})) (print (unterra (def [: Complex] (return (Complex { real 5 imag 1 }))) )) (print (unterra (def [c Complex r float] (tset c :real r)) )) (local thing (def [: Complex] (return (Complex { real 5 imag 1 })))) (local get-real (def [val Complex] (return (. val :real)))) (local set-real (def [c [Complex] r float] (tset c :real r))) (let [result (thing)] (print result result.real result.imag (get-real result)) (set-real result 10) (print (get-real result)))