Types from values using existential types?