type-specific wrapping and unwrapping of scheme values