2) Libraries like Marshal (
https://github.com/utahiosmac/Marshal) and Unbox (
https://github.com/JohnSundell/Unbox) don’t require the decoding functions to provide the type: those functions are generic on the return turn and it’s automatically inferred: func decode<T>(key: Key) -> T self.stringProperty = decode(key: .stringProperty) // correct specialisation of the generic function chosen by the compiler Is there a reason the proposal did not choose this solution? Its quite sweet.