we need to rewrite this `next if || if` *thing*. here what this construct mean now (`if` expression returns a value):

```ruby
        value = if typename[0,1] != '#' 
          v = line.collect { |l| l.strip.split(":")[0] }
          @types[typename] = v
        end
        next if typename.nil? || value
```

is this what we want? :P