Ticket #4459 (new feature request)
|Reported by:||vivian||Owned by:||vivian|
|Keywords:||polymorphic, dynamic, class, linking||Cc:||haskell.vivian.mcphail@…, mmitar@…, leather@…|
|Type of failure:||None/Unknown||Difficulty:|
|Test Case:||Blocked By:|
Description (last modified by igloo) (diff)
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 bind statements.
applyDynamic :: TypedAny -> TypedAny -> Maybe TypedAny
includes in its implementation a dictionary lookup and possible dynamic object linking for class methods.
fromDynamic :: TypedAny -> Maybe a
like 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.