       join-metadata
       whales-model
       {:ocean oceans-model}
-      (fn [id version ^Whale whale [[ocean]]] ;TODO - type hints
+      (fn [id version ^Whale whale [[^Ocean ocean]]]
 	(let [[type length weight] (if whale [(.type whale)(.length whale)(.weight whale)][nil 0 0])
 	      [ocean ocean-max-depth ocean-area] (if ocean [(.id ocean)(.max-depth ocean)(.area ocean)] [nil 0 0])]
 	  (Join. id version type length weight ocean ocean-area ocean-max-depth)


(defn rnd [seq] (nth seq (rand-int (count seq))))

;;--------------------------------------------------------------------------------
;; Oceans
;;--------------------------------------------------------------------------------


(insert *metamodel* oceans-model)

(if (not *compile-files*)
  (insert-n
   oceans-model
   [(Ocean. "arctic"   0 0        17880)
    (Ocean. "atlantic" 0 41100000 28232)
    (Ocean. "indian"   0 28350000 23808)
    (Ocean. "pacific"  0 64100000 35797)
    (Ocean. "southern" 0 0        23737)]))

;;--------------------------------------------------------------------------------
;; Whales
