pub fn instantiation<'a>(
    env: &'a (dyn TypeEnv<Type = RcType> + 'a),
    f: &mut dyn FnMut(&Symbol, &RcType),
    l: &RcType,
    r: &RcType
)