getenv!(expr, tvars, defs)

replace anything that isn't computable by apply_type with a dummy type-variable

@computed type

Allows declaration of a type expression where some of the fields types are arbitrary computed functions of other type parameters. It's suggested that those expressions be const (return the same value for the same inputs), but that is not essential.