def-struct~ and def-struct^