File tree Expand file tree Collapse file tree 1 file changed +3
-6
lines changed Expand file tree Collapse file tree 1 file changed +3
-6
lines changed Original file line number Diff line number Diff line change @@ -1093,12 +1093,9 @@ type-checking rules for instantiating type imports mirror the *elimination*
1093
1093
rule of [ universal types] (∀T).
1094
1094
1095
1095
Importantly, this type substitution performed by the parent is not visible to
1096
- the child at validation- or run-time. In particular, the type checks performed
1097
- by the [ Canonical ABI] ( CanonicalABI.md#context ) use distinct type tags for
1098
- distinct type imports and associate type tags with * handles* , not the underlying
1099
- * resource* , leveraging the shared-nothing nature of components to type-tag handles
1100
- at component boundaries and avoid the usual [ type-exposure problems with
1101
- dynamic casts] [ non-parametric parametricity ] .
1096
+ the child at validation- or run-time. In particular, there are no runtime
1097
+ casts that can "see through" to the original type parameter, avoiding
1098
+ avoiding the usual [ type-exposure problems with dynamic casts] [ non-parametric parametricity ] .
1102
1099
1103
1100
In summary: all type constructors are * structural* with the exception of
1104
1101
` resource ` , which is * abstract* and * generative* . Type imports and exports that
You can’t perform that action at this time.
0 commit comments