analyzer gets confused if defn isnt top level