|Reported by:||vivian||Owned by:||vivian|
|Keywords:||polymorphic, dynamic, class, linking||Cc:||haskell.vivian.mcphail@…, mmitar@…, leather@…|
|Type of failure:||None/Unknown||Test Case:|
|Related Tickets:||Differential Rev(s):|
Description (last modified by )
At some point in the compilation process an expression acquires a fully-specified, possibly polymorphic, type. If we add an operation that join that type and that expresssion, say
TypedAny, then we can implement the part of #4316 requested by mitar.
In GHCi we can evaluate
HValues and also string them together with
applyDynamic :: TypedAny -> TypedAny -> Maybe TypedAny
includes in its implementation a dictionary lookup and possible dynamic object linking for class methods.
fromDynamic :: TypedAny -> Maybe a
applyDynamic, runs the typechecker at runtime to unify (and possibly link) the dynamic type (TypedAny) and the static type (a).
Conjecture Since we already have
typecase (classes), with type families, this feature provides/simulates dependent types.