WEBVTT
Kind: captions
Language: en

00:00:00.000 --> 00:00:04.420 align:start position:0%
 
foreign

00:00:04.420 --> 00:00:04.430 align:start position:0%
 
 

00:00:04.430 --> 00:00:15.189 align:start position:0%
 
[Music]

00:00:15.189 --> 00:00:15.199 align:start position:0%
 
 

00:00:15.199 --> 00:00:18.590 align:start position:0%
 
for<00:00:16.199><c> yeah</c><00:00:16.560><c> over</c><00:00:16.859><c> four</c><00:00:17.100><c> years</c><00:00:17.279><c> now</c><00:00:17.460><c> and</c><00:00:18.359><c> yeah</c>

00:00:18.590 --> 00:00:18.600 align:start position:0%
for yeah over four years now and yeah
 

00:00:18.600 --> 00:00:20.330 align:start position:0%
for yeah over four years now and yeah
originally<00:00:19.199><c> the</c><00:00:19.380><c> plan</c><00:00:19.560><c> was</c><00:00:19.740><c> for</c><00:00:19.859><c> the</c><00:00:20.039><c> store</c><00:00:20.160><c> to</c>

00:00:20.330 --> 00:00:20.340 align:start position:0%
originally the plan was for the store to
 

00:00:20.340 --> 00:00:21.710 align:start position:0%
originally the plan was for the store to
be<00:00:20.400><c> held</c><00:00:20.640><c> by</c><00:00:20.760><c> Chris</c><00:00:20.939><c> who</c><00:00:21.240><c> couldn't</c><00:00:21.359><c> make</c><00:00:21.539><c> it</c><00:00:21.660><c> to</c>

00:00:21.710 --> 00:00:21.720 align:start position:0%
be held by Chris who couldn't make it to
 

00:00:21.720 --> 00:00:23.990 align:start position:0%
be held by Chris who couldn't make it to
Bogota<00:00:22.080><c> so</c><00:00:22.560><c> I</c><00:00:22.800><c> have</c><00:00:22.920><c> to</c><00:00:23.039><c> improvise</c><00:00:23.520><c> a</c><00:00:23.640><c> bit</c><00:00:23.760><c> I</c>

00:00:23.990 --> 00:00:24.000 align:start position:0%
Bogota so I have to improvise a bit I
 

00:00:24.000 --> 00:00:26.210 align:start position:0%
Bogota so I have to improvise a bit I
brought<00:00:24.240><c> a</c><00:00:25.080><c> lot</c><00:00:25.199><c> of</c><00:00:25.260><c> code</c><00:00:25.439><c> Snippets</c><00:00:25.980><c> which</c>

00:00:26.210 --> 00:00:26.220 align:start position:0%
brought a lot of code Snippets which
 

00:00:26.220 --> 00:00:28.070 align:start position:0%
brought a lot of code Snippets which
will<00:00:26.400><c> explain</c><00:00:26.640><c> what</c><00:00:27.119><c> we</c><00:00:27.480><c> have</c><00:00:27.599><c> currently</c><00:00:27.960><c> in</c>

00:00:28.070 --> 00:00:28.080 align:start position:0%
will explain what we have currently in
 

00:00:28.080 --> 00:00:29.689 align:start position:0%
will explain what we have currently in
the<00:00:28.199><c> compiler</c><00:00:28.560><c> currently</c><00:00:28.980><c> the</c><00:00:29.160><c> state</c><00:00:29.400><c> of</c><00:00:29.580><c> the</c>

00:00:29.689 --> 00:00:29.699 align:start position:0%
the compiler currently the state of the
 

00:00:29.699 --> 00:00:31.849 align:start position:0%
the compiler currently the state of the
language<00:00:29.820><c> and</c><00:00:30.119><c> where</c><00:00:30.420><c> we</c><00:00:30.539><c> are</c><00:00:30.660><c> headed</c><00:00:30.900><c> with</c><00:00:31.080><c> it</c>

00:00:31.849 --> 00:00:31.859 align:start position:0%
language and where we are headed with it
 

00:00:31.859 --> 00:00:33.709 align:start position:0%
language and where we are headed with it
yeah<00:00:32.340><c> I</c><00:00:32.520><c> guess</c><00:00:32.700><c> you</c><00:00:32.940><c> if</c><00:00:33.239><c> you</c><00:00:33.420><c> are</c><00:00:33.480><c> familiar</c>

00:00:33.709 --> 00:00:33.719 align:start position:0%
yeah I guess you if you are familiar
 

00:00:33.719 --> 00:00:35.090 align:start position:0%
yeah I guess you if you are familiar
with<00:00:33.840><c> Trinity</c><00:00:34.079><c> which</c><00:00:34.440><c> I</c><00:00:34.559><c> hope</c><00:00:34.680><c> most</c><00:00:34.860><c> of</c><00:00:34.980><c> you</c>

00:00:35.090 --> 00:00:35.100 align:start position:0%
with Trinity which I hope most of you
 

00:00:35.100 --> 00:00:36.830 align:start position:0%
with Trinity which I hope most of you
are<00:00:35.219><c> we</c><00:00:35.460><c> probably</c><00:00:35.760><c> know</c><00:00:35.940><c> new</c><00:00:36.180><c> doubles</c><00:00:36.480><c> by</c><00:00:36.660><c> now</c>

00:00:36.830 --> 00:00:36.840 align:start position:0%
are we probably know new doubles by now
 

00:00:36.840 --> 00:00:39.049 align:start position:0%
are we probably know new doubles by now
it's<00:00:37.020><c> been</c><00:00:37.260><c> around</c><00:00:37.800><c> for</c><00:00:38.100><c> for</c><00:00:38.520><c> a</c><00:00:38.700><c> while</c><00:00:38.760><c> and</c>

00:00:39.049 --> 00:00:39.059 align:start position:0%
it's been around for for a while and
 

00:00:39.059 --> 00:00:41.090 align:start position:0%
it's been around for for a while and
it's<00:00:39.180><c> a</c><00:00:39.420><c> very</c><00:00:39.600><c> highly</c><00:00:39.899><c> appreciated</c><00:00:40.260><c> feature</c>

00:00:41.090 --> 00:00:41.100 align:start position:0%
it's a very highly appreciated feature
 

00:00:41.100 --> 00:00:43.850 align:start position:0%
it's a very highly appreciated feature
from<00:00:41.340><c> uh</c><00:00:41.940><c> our</c><00:00:42.120><c> impression</c><00:00:42.600><c> which</c><00:00:43.440><c> yeah</c><00:00:43.680><c> I</c>

00:00:43.850 --> 00:00:43.860 align:start position:0%
from uh our impression which yeah I
 

00:00:43.860 --> 00:00:45.650 align:start position:0%
from uh our impression which yeah I
still<00:00:44.040><c> will</c><00:00:44.340><c> quickly</c><00:00:44.820><c> explain</c><00:00:45.000><c> how</c><00:00:45.300><c> they</c><00:00:45.480><c> work</c>

00:00:45.650 --> 00:00:45.660 align:start position:0%
still will quickly explain how they work
 

00:00:45.660 --> 00:00:46.850 align:start position:0%
still will quickly explain how they work
that's

00:00:46.850 --> 00:00:46.860 align:start position:0%
that's
 

00:00:46.860 --> 00:00:48.709 align:start position:0%
that's
the<00:00:47.040><c> owner</c><00:00:47.460><c> of</c><00:00:47.520><c> arrival</c><00:00:47.760><c> here</c><00:00:48.059><c> is</c><00:00:48.239><c> looks</c><00:00:48.660><c> like</c>

00:00:48.709 --> 00:00:48.719 align:start position:0%
the owner of arrival here is looks like
 

00:00:48.719 --> 00:00:50.869 align:start position:0%
the owner of arrival here is looks like
a<00:00:48.840><c> state</c><00:00:48.960><c> variable</c><00:00:49.379><c> but</c><00:00:49.620><c> it's</c><00:00:49.800><c> not</c><00:00:49.980><c> a</c><00:00:50.160><c> really</c>

00:00:50.869 --> 00:00:50.879 align:start position:0%
a state variable but it's not a really
 

00:00:50.879 --> 00:00:53.630 align:start position:0%
a state variable but it's not a really
proper<00:00:51.420><c> State</c><00:00:51.539><c> variable</c><00:00:51.960><c> in</c><00:00:52.140><c> storage</c><00:00:52.379><c> but</c><00:00:53.160><c> a</c>

00:00:53.630 --> 00:00:53.640 align:start position:0%
proper State variable in storage but a
 

00:00:53.640 --> 00:00:55.189 align:start position:0%
proper State variable in storage but a
mutable<00:00:54.059><c> variable</c><00:00:54.480><c> which</c><00:00:54.719><c> can</c><00:00:54.840><c> only</c><00:00:55.020><c> be</c>

00:00:55.189 --> 00:00:55.199 align:start position:0%
mutable variable which can only be
 

00:00:55.199 --> 00:00:57.229 align:start position:0%
mutable variable which can only be
assigned<00:00:55.559><c> to</c><00:00:55.620><c> Once</c><00:00:55.980><c> In</c><00:00:56.160><c> The</c><00:00:56.280><c> Constructor</c>

00:00:57.229 --> 00:00:57.239 align:start position:0%
assigned to Once In The Constructor
 

00:00:57.239 --> 00:00:59.090 align:start position:0%
assigned to Once In The Constructor
and<00:00:57.719><c> then</c><00:00:57.840><c> can</c><00:00:58.079><c> use</c><00:00:58.260><c> this</c><00:00:58.379><c> many</c><00:00:58.559><c> times</c><00:00:58.739><c> as</c><00:00:58.920><c> one</c>

00:00:59.090 --> 00:00:59.100 align:start position:0%
and then can use this many times as one
 

00:00:59.100 --> 00:01:01.610 align:start position:0%
and then can use this many times as one
wants<00:00:59.460><c> read</c><00:00:59.879><c> only</c><00:01:00.180><c> in</c><00:01:00.660><c> the</c><00:01:00.840><c> runtime</c><00:01:01.199><c> code</c><00:01:01.440><c> of</c>

00:01:01.610 --> 00:01:01.620 align:start position:0%
wants read only in the runtime code of
 

00:01:01.620 --> 00:01:03.470 align:start position:0%
wants read only in the runtime code of
the<00:01:01.739><c> contract</c><00:01:02.039><c> but</c><00:01:02.579><c> there</c><00:01:02.820><c> it's</c><00:01:03.120><c> the</c><00:01:03.359><c> access</c>

00:01:03.470 --> 00:01:03.480 align:start position:0%
the contract but there it's the access
 

00:01:03.480 --> 00:01:05.270 align:start position:0%
the contract but there it's the access
is<00:01:03.780><c> very</c><00:01:03.960><c> cheap</c><00:01:04.140><c> it</c><00:01:04.379><c> doesn't</c><00:01:04.559><c> require</c><00:01:04.799><c> an</c><00:01:05.040><c> S</c>

00:01:05.270 --> 00:01:05.280 align:start position:0%
is very cheap it doesn't require an S
 

00:01:05.280 --> 00:01:08.350 align:start position:0%
is very cheap it doesn't require an S
load<00:01:05.580><c> but</c><00:01:06.240><c> it's</c><00:01:06.479><c> basically</c><00:01:06.900><c> in</c><00:01:07.320><c> line</c><00:01:07.500><c> in</c><00:01:07.920><c> the</c>

00:01:08.350 --> 00:01:08.360 align:start position:0%
load but it's basically in line in the
 

00:01:08.360 --> 00:01:11.630 align:start position:0%
load but it's basically in line in the
code<00:01:09.360><c> as</c><00:01:09.720><c> if</c><00:01:09.900><c> it</c><00:01:10.020><c> was</c><00:01:10.140><c> a</c><00:01:10.260><c> literal</c>

00:01:11.630 --> 00:01:11.640 align:start position:0%
code as if it was a literal
 

00:01:11.640 --> 00:01:14.390 align:start position:0%
code as if it was a literal
so<00:01:12.420><c> yeah</c><00:01:12.720><c> you'll</c><00:01:13.020><c> probably</c><00:01:13.200><c> know</c><00:01:13.439><c> this</c><00:01:13.680><c> and</c>

00:01:14.390 --> 00:01:14.400 align:start position:0%
so yeah you'll probably know this and
 

00:01:14.400 --> 00:01:16.969 align:start position:0%
so yeah you'll probably know this and
people<00:01:14.760><c> liked</c><00:01:15.299><c> it</c><00:01:15.420><c> a</c><00:01:15.600><c> lot</c><00:01:15.659><c> and</c><00:01:16.260><c> an</c><00:01:16.560><c> apparent</c>

00:01:16.969 --> 00:01:16.979 align:start position:0%
people liked it a lot and an apparent
 

00:01:16.979 --> 00:01:19.010 align:start position:0%
people liked it a lot and an apparent
and<00:01:17.220><c> a</c><00:01:17.460><c> very</c><00:01:17.700><c> obvious</c><00:01:18.000><c> extension</c><00:01:18.540><c> they</c><00:01:18.780><c> asked</c>

00:01:19.010 --> 00:01:19.020 align:start position:0%
and a very obvious extension they asked
 

00:01:19.020 --> 00:01:19.670 align:start position:0%
and a very obvious extension they asked
for

00:01:19.670 --> 00:01:19.680 align:start position:0%
for
 

00:01:19.680 --> 00:01:22.490 align:start position:0%
for
is<00:01:20.400><c> why</c><00:01:21.180><c> do</c><00:01:21.360><c> we</c><00:01:21.479><c> only</c><00:01:21.659><c> support</c><00:01:21.900><c> that</c><00:01:22.140><c> for</c><00:01:22.320><c> Value</c>

00:01:22.490 --> 00:01:22.500 align:start position:0%
is why do we only support that for Value
 

00:01:22.500 --> 00:01:24.109 align:start position:0%
is why do we only support that for Value
types<00:01:22.920><c> that's</c><00:01:23.100><c> the</c><00:01:23.280><c> Restriction</c><00:01:23.520><c> you</c><00:01:23.759><c> had</c><00:01:23.939><c> so</c>

00:01:24.109 --> 00:01:24.119 align:start position:0%
types that's the Restriction you had so
 

00:01:24.119 --> 00:01:25.910 align:start position:0%
types that's the Restriction you had so
far<00:01:24.299><c> that</c><00:01:24.720><c> it's</c><00:01:24.900><c> only</c><00:01:25.080><c> integers</c><00:01:25.560><c> on</c><00:01:25.740><c> the</c>

00:01:25.910 --> 00:01:25.920 align:start position:0%
far that it's only integers on the
 

00:01:25.920 --> 00:01:27.830 align:start position:0%
far that it's only integers on the
addresses<00:01:26.340><c> but</c><00:01:26.520><c> not</c><00:01:26.700><c> arrays</c><00:01:27.240><c> of</c><00:01:27.360><c> things</c><00:01:27.540><c> for</c>

00:01:27.830 --> 00:01:27.840 align:start position:0%
addresses but not arrays of things for
 

00:01:27.840 --> 00:01:29.570 align:start position:0%
addresses but not arrays of things for
example<00:01:28.080><c> for</c><00:01:28.799><c> example</c><00:01:28.979><c> so</c><00:01:29.159><c> this</c><00:01:29.280><c> was</c><00:01:29.400><c> for</c>

00:01:29.570 --> 00:01:29.580 align:start position:0%
example for example so this was for
 

00:01:29.580 --> 00:01:31.490 align:start position:0%
example for example so this was for
example<00:01:29.820><c> it's</c><00:01:30.360><c> taken</c><00:01:30.659><c> from</c><00:01:30.780><c> a</c><00:01:30.900><c> GitHub</c><00:01:31.200><c> issue</c>

00:01:31.490 --> 00:01:31.500 align:start position:0%
example it's taken from a GitHub issue
 

00:01:31.500 --> 00:01:32.810 align:start position:0%
example it's taken from a GitHub issue
that<00:01:31.619><c> I</c><00:01:31.740><c> think</c><00:01:31.799><c> opens</c><00:01:32.100><c> apple</c><00:01:32.280><c> and</c><00:01:32.460><c> open</c><00:01:32.580><c> with</c>

00:01:32.810 --> 00:01:32.820 align:start position:0%
that I think opens apple and open with
 

00:01:32.820 --> 00:01:36.050 align:start position:0%
that I think opens apple and open with
us<00:01:33.000><c> to</c><00:01:33.299><c> yeah</c><00:01:33.900><c> ask</c><00:01:34.320><c> for</c><00:01:34.619><c> an</c><00:01:35.579><c> array</c><00:01:35.880><c> of</c>

00:01:36.050 --> 00:01:36.060 align:start position:0%
us to yeah ask for an array of
 

00:01:36.060 --> 00:01:37.969 align:start position:0%
us to yeah ask for an array of
immutables<00:01:36.780><c> which</c><00:01:37.140><c> would</c><00:01:37.259><c> then</c><00:01:37.500><c> yeah</c><00:01:37.680><c> be</c>

00:01:37.969 --> 00:01:37.979 align:start position:0%
immutables which would then yeah be
 

00:01:37.979 --> 00:01:39.590 align:start position:0%
immutables which would then yeah be
initialized<00:01:38.579><c> by</c><00:01:38.700><c> index</c><00:01:38.939><c> accessing</c><00:01:39.420><c> and</c>

00:01:39.590 --> 00:01:39.600 align:start position:0%
initialized by index accessing and
 

00:01:39.600 --> 00:01:42.410 align:start position:0%
initialized by index accessing and
otherwise<00:01:39.960><c> work</c><00:01:40.320><c> just</c><00:01:40.619><c> as</c>

00:01:42.410 --> 00:01:42.420 align:start position:0%
otherwise work just as
 

00:01:42.420 --> 00:01:46.249 align:start position:0%
otherwise work just as
as<00:01:43.079><c> one</c><00:01:43.259><c> is</c><00:01:43.380><c> used</c><00:01:43.500><c> with</c><00:01:43.799><c> immutables</c>

00:01:46.249 --> 00:01:46.259 align:start position:0%
as one is used with immutables
 

00:01:46.259 --> 00:01:48.770 align:start position:0%
as one is used with immutables
and<00:01:46.740><c> we're</c><00:01:46.860><c> working</c><00:01:47.100><c> towards</c><00:01:47.759><c> that</c><00:01:48.240><c> end</c><00:01:48.420><c> but</c>

00:01:48.770 --> 00:01:48.780 align:start position:0%
and we're working towards that end but
 

00:01:48.780 --> 00:01:50.630 align:start position:0%
and we're working towards that end but
there's<00:01:49.020><c> some</c><00:01:49.200><c> issues</c><00:01:49.500><c> with</c><00:01:49.560><c> that</c><00:01:49.799><c> so</c><00:01:50.280><c> I</c><00:01:50.460><c> mean</c>

00:01:50.630 --> 00:01:50.640 align:start position:0%
there's some issues with that so I mean
 

00:01:50.640 --> 00:01:52.429 align:start position:0%
there's some issues with that so I mean
we<00:01:51.000><c> have</c><00:01:51.119><c> these</c><00:01:51.360><c> assignment</c><00:01:51.780><c> here</c><00:01:52.020><c> where</c>

00:01:52.429 --> 00:01:52.439 align:start position:0%
we have these assignment here where
 

00:01:52.439 --> 00:01:55.310 align:start position:0%
we have these assignment here where
randomly<00:01:52.920><c> assigned</c><00:01:53.399><c> uh</c>

00:01:55.310 --> 00:01:55.320 align:start position:0%
randomly assigned uh
 

00:01:55.320 --> 00:01:59.149 align:start position:0%
randomly assigned uh
into<00:01:55.979><c> uh</c><00:01:56.700><c> elements</c><00:01:57.119><c> of</c><00:01:57.240><c> this</c><00:01:57.360><c> array</c><00:01:57.740><c> and</c><00:01:58.740><c> in</c>

00:01:59.149 --> 00:01:59.159 align:start position:0%
into uh elements of this array and in
 

00:01:59.159 --> 00:02:00.590 align:start position:0%
into uh elements of this array and in
general<00:01:59.340><c> I</c><00:01:59.579><c> cannot</c><00:01:59.820><c> check</c><00:01:59.939><c> that</c><00:02:00.119><c> this</c><00:02:00.420><c> is</c>

00:02:00.590 --> 00:02:00.600 align:start position:0%
general I cannot check that this is
 

00:02:00.600 --> 00:02:02.149 align:start position:0%
general I cannot check that this is
really<00:02:00.780><c> assigned</c><00:02:01.200><c> only</c><00:02:01.259><c> once</c><00:02:01.740><c> I</c><00:02:01.920><c> mean</c><00:02:02.040><c> the</c>

00:02:02.149 --> 00:02:02.159 align:start position:0%
really assigned only once I mean the
 

00:02:02.159 --> 00:02:03.830 align:start position:0%
really assigned only once I mean the
question<00:02:02.340><c> is</c><00:02:02.460><c> is</c><00:02:02.700><c> there</c><00:02:02.939><c> still</c><00:02:03.119><c> an</c><00:02:03.360><c> immutable</c>

00:02:03.830 --> 00:02:03.840 align:start position:0%
question is is there still an immutable
 

00:02:03.840 --> 00:02:06.469 align:start position:0%
question is is there still an immutable
thing<00:02:04.140><c> in</c><00:02:04.920><c> that</c><00:02:05.040><c> sense</c>

00:02:06.469 --> 00:02:06.479 align:start position:0%
thing in that sense
 

00:02:06.479 --> 00:02:08.930 align:start position:0%
thing in that sense
also<00:02:07.200><c> if</c><00:02:07.560><c> I</c><00:02:07.740><c> start</c><00:02:07.860><c> having</c><00:02:08.099><c> a</c><00:02:08.340><c> race</c><00:02:08.520><c> as</c><00:02:08.759><c> a</c>

00:02:08.930 --> 00:02:08.940 align:start position:0%
also if I start having a race as a
 

00:02:08.940 --> 00:02:10.790 align:start position:0%
also if I start having a race as a
mutables<00:02:09.539><c> I</c><00:02:09.959><c> will</c><00:02:10.080><c> want</c><00:02:10.319><c> to</c><00:02:10.440><c> have</c><00:02:10.560><c> local</c>

00:02:10.790 --> 00:02:10.800 align:start position:0%
mutables I will want to have local
 

00:02:10.800 --> 00:02:12.589 align:start position:0%
mutables I will want to have local
references<00:02:11.340><c> to</c><00:02:11.520><c> them</c><00:02:11.700><c> which</c><00:02:12.120><c> I</c><00:02:12.300><c> could</c><00:02:12.420><c> then</c>

00:02:12.589 --> 00:02:12.599 align:start position:0%
references to them which I could then
 

00:02:12.599 --> 00:02:14.690 align:start position:0%
references to them which I could then
reassign<00:02:13.140><c> so</c><00:02:13.560><c> if</c><00:02:13.739><c> I</c><00:02:13.860><c> keep</c><00:02:13.980><c> the</c><00:02:14.099><c> name</c><00:02:14.220><c> immutable</c>

00:02:14.690 --> 00:02:14.700 align:start position:0%
reassign so if I keep the name immutable
 

00:02:14.700 --> 00:02:16.729 align:start position:0%
reassign so if I keep the name immutable
I<00:02:15.180><c> just</c><00:02:15.360><c> change</c><00:02:15.540><c> what</c><00:02:15.840><c> this</c><00:02:16.020><c> points</c><00:02:16.319><c> to</c><00:02:16.440><c> so</c>

00:02:16.729 --> 00:02:16.739 align:start position:0%
I just change what this points to so
 

00:02:16.739 --> 00:02:18.710 align:start position:0%
I just change what this points to so
this<00:02:16.980><c> is</c><00:02:17.099><c> really</c><00:02:17.280><c> it</c><00:02:17.760><c> doesn't</c><00:02:17.940><c> look</c><00:02:18.180><c> immutable</c>

00:02:18.710 --> 00:02:18.720 align:start position:0%
this is really it doesn't look immutable
 

00:02:18.720 --> 00:02:20.210 align:start position:0%
this is really it doesn't look immutable
immutable<00:02:19.140><c> it</c><00:02:19.260><c> doesn't</c><00:02:19.440><c> fit</c><00:02:19.680><c> this</c><00:02:19.920><c> concept</c>

00:02:20.210 --> 00:02:20.220 align:start position:0%
immutable it doesn't fit this concept
 

00:02:20.220 --> 00:02:22.850 align:start position:0%
immutable it doesn't fit this concept
anymore<00:02:20.400><c> probably</c>

00:02:22.850 --> 00:02:22.860 align:start position:0%
 
 

00:02:22.860 --> 00:02:26.510 align:start position:0%
 
so<00:02:23.580><c> let's</c><00:02:24.000><c> yeah</c><00:02:24.720><c> let</c><00:02:25.200><c> me</c><00:02:25.379><c> explain</c><00:02:25.500><c> a</c><00:02:26.400><c> bit</c>

00:02:26.510 --> 00:02:26.520 align:start position:0%
so let's yeah let me explain a bit
 

00:02:26.520 --> 00:02:29.630 align:start position:0%
so let's yeah let me explain a bit
further<00:02:27.000><c> how</c><00:02:27.599><c> Universe</c><00:02:28.080><c> actually</c><00:02:28.379><c> work</c>

00:02:29.630 --> 00:02:29.640 align:start position:0%
further how Universe actually work
 

00:02:29.640 --> 00:02:31.490 align:start position:0%
further how Universe actually work
in<00:02:30.120><c> the</c><00:02:30.239><c> Constructor</c>

00:02:31.490 --> 00:02:31.500 align:start position:0%
in the Constructor
 

00:02:31.500 --> 00:02:34.309 align:start position:0%
in the Constructor
owner<00:02:32.160><c> is</c><00:02:32.400><c> actually</c><00:02:32.640><c> a</c><00:02:32.940><c> position</c><00:02:33.060><c> in</c><00:02:33.420><c> memory</c>

00:02:34.309 --> 00:02:34.319 align:start position:0%
owner is actually a position in memory
 

00:02:34.319 --> 00:02:35.869 align:start position:0%
owner is actually a position in memory
so<00:02:34.739><c> we</c><00:02:34.920><c> store</c>

00:02:35.869 --> 00:02:35.879 align:start position:0%
so we store
 

00:02:35.879 --> 00:02:38.089 align:start position:0%
so we store
whatever<00:02:36.360><c> you</c><00:02:36.720><c> write</c><00:02:36.900><c> to</c><00:02:37.080><c> this</c><00:02:37.260><c> variable</c><00:02:37.620><c> in</c>

00:02:38.089 --> 00:02:38.099 align:start position:0%
whatever you write to this variable in
 

00:02:38.099 --> 00:02:40.970 align:start position:0%
whatever you write to this variable in
memory<00:02:38.400><c> and</c><00:02:39.180><c> then</c><00:02:39.360><c> when</c><00:02:39.720><c> the</c><00:02:39.959><c> actual</c><00:02:40.680><c> runtime</c>

00:02:40.970 --> 00:02:40.980 align:start position:0%
memory and then when the actual runtime
 

00:02:40.980 --> 00:02:42.890 align:start position:0%
memory and then when the actual runtime
code<00:02:41.220><c> of</c><00:02:41.400><c> the</c><00:02:41.519><c> of</c><00:02:41.879><c> the</c><00:02:42.060><c> contract</c><00:02:42.300><c> part</c><00:02:42.720><c> of</c>

00:02:42.890 --> 00:02:42.900 align:start position:0%
code of the of the contract part of
 

00:02:42.900 --> 00:02:44.750 align:start position:0%
code of the of the contract part of
deploy<00:02:43.260><c> is</c><00:02:43.800><c> copied</c><00:02:44.160><c> to</c><00:02:44.340><c> memory</c><00:02:44.459><c> to</c><00:02:44.640><c> be</c>

00:02:44.750 --> 00:02:44.760 align:start position:0%
deploy is copied to memory to be
 

00:02:44.760 --> 00:02:47.150 align:start position:0%
deploy is copied to memory to be
returned<00:02:45.060><c> by</c><00:02:45.180><c> The</c><00:02:45.300><c> Constructor</c><00:02:45.660><c> we</c><00:02:46.019><c> fill</c><00:02:46.260><c> in</c>

00:02:47.150 --> 00:02:47.160 align:start position:0%
returned by The Constructor we fill in
 

00:02:47.160 --> 00:02:49.250 align:start position:0%
returned by The Constructor we fill in
from<00:02:47.519><c> this</c><00:02:47.760><c> network</c><00:02:47.940><c> location</c><00:02:48.300><c> into</c><00:02:48.720><c> the</c><00:02:48.900><c> byte</c>

00:02:49.250 --> 00:02:49.260 align:start position:0%
from this network location into the byte
 

00:02:49.260 --> 00:02:50.869 align:start position:0%
from this network location into the byte
code<00:02:49.440><c> the</c><00:02:49.860><c> value</c><00:02:50.040><c> that</c><00:02:50.280><c> is</c><00:02:50.400><c> there</c><00:02:50.519><c> which</c><00:02:50.760><c> in</c>

00:02:50.869 --> 00:02:50.879 align:start position:0%
code the value that is there which in
 

00:02:50.879 --> 00:02:53.030 align:start position:0%
code the value that is there which in
the<00:02:51.060><c> end</c><00:02:51.180><c> results</c><00:02:52.019><c> in</c><00:02:52.319><c> the</c><00:02:52.379><c> runtime</c><00:02:52.620><c> code</c><00:02:52.860><c> to</c>

00:02:53.030 --> 00:02:53.040 align:start position:0%
the end results in the runtime code to
 

00:02:53.040 --> 00:02:55.729 align:start position:0%
the end results in the runtime code to
actually<00:02:53.280><c> have</c><00:02:53.940><c> it</c><00:02:54.120><c> as</c><00:02:54.420><c> a</c><00:02:54.720><c> literal</c><00:02:55.140><c> in</c><00:02:55.560><c> the</c>

00:02:55.729 --> 00:02:55.739 align:start position:0%
actually have it as a literal in the
 

00:02:55.739 --> 00:02:57.170 align:start position:0%
actually have it as a literal in the
bytecode

00:02:57.170 --> 00:02:57.180 align:start position:0%
bytecode
 

00:02:57.180 --> 00:02:58.970 align:start position:0%
bytecode
so<00:02:57.599><c> that's</c><00:02:57.780><c> the</c><00:02:57.959><c> Rival</c><00:02:58.200><c> in</c><00:02:58.440><c> the</c><00:02:58.560><c> Constructor</c>

00:02:58.970 --> 00:02:58.980 align:start position:0%
so that's the Rival in the Constructor
 

00:02:58.980 --> 00:03:01.850 align:start position:0%
so that's the Rival in the Constructor
actually<00:02:59.400><c> is</c><00:02:59.760><c> a</c><00:02:59.940><c> memory</c><00:03:00.180><c> reliable</c><00:03:00.599><c> in</c><00:03:01.500><c> runtime</c>

00:03:01.850 --> 00:03:01.860 align:start position:0%
actually is a memory reliable in runtime
 

00:03:01.860 --> 00:03:03.410 align:start position:0%
actually is a memory reliable in runtime
it's<00:03:02.280><c> actually</c><00:03:02.459><c> something</c><00:03:02.760><c> that</c><00:03:03.000><c> lives</c><00:03:03.300><c> in</c>

00:03:03.410 --> 00:03:03.420 align:start position:0%
it's actually something that lives in
 

00:03:03.420 --> 00:03:05.930 align:start position:0%
it's actually something that lives in
code<00:03:03.660><c> but</c><00:03:04.440><c> filling</c><00:03:04.920><c> in</c><00:03:04.980><c> literal</c><00:03:05.340><c> values</c><00:03:05.700><c> in</c>

00:03:05.930 --> 00:03:05.940 align:start position:0%
code but filling in literal values in
 

00:03:05.940 --> 00:03:07.850 align:start position:0%
code but filling in literal values in
some<00:03:06.060><c> so</c><00:03:06.239><c> basically</c><00:03:06.599><c> the</c><00:03:06.780><c> push</c><00:03:07.019><c> argument</c><00:03:07.440><c> into</c>

00:03:07.850 --> 00:03:07.860 align:start position:0%
some so basically the push argument into
 

00:03:07.860 --> 00:03:09.710 align:start position:0%
some so basically the push argument into
the<00:03:08.040><c> bytecode</c><00:03:08.519><c> won't</c><00:03:08.819><c> work</c><00:03:09.060><c> anymore</c><00:03:09.300><c> for</c>

00:03:09.710 --> 00:03:09.720 align:start position:0%
the bytecode won't work anymore for
 

00:03:09.720 --> 00:03:11.570 align:start position:0%
the bytecode won't work anymore for
dynamic<00:03:10.440><c> types</c><00:03:10.800><c> if</c><00:03:11.040><c> you</c><00:03:11.159><c> have</c><00:03:11.280><c> statically</c>

00:03:11.570 --> 00:03:11.580 align:start position:0%
dynamic types if you have statically
 

00:03:11.580 --> 00:03:13.430 align:start position:0%
dynamic types if you have statically
sized<00:03:11.940><c> arrays</c><00:03:12.239><c> we</c><00:03:12.420><c> could</c><00:03:12.599><c> still</c><00:03:12.840><c> do</c><00:03:13.140><c> that</c><00:03:13.260><c> and</c>

00:03:13.430 --> 00:03:13.440 align:start position:0%
sized arrays we could still do that and
 

00:03:13.440 --> 00:03:15.110 align:start position:0%
sized arrays we could still do that and
we<00:03:13.620><c> probably</c><00:03:13.739><c> will</c><00:03:13.980><c> for</c><00:03:14.340><c> efficiency</c><00:03:14.700><c> reasons</c>

00:03:15.110 --> 00:03:15.120 align:start position:0%
we probably will for efficiency reasons
 

00:03:15.120 --> 00:03:17.570 align:start position:0%
we probably will for efficiency reasons
but<00:03:15.360><c> at</c><00:03:15.959><c> least</c><00:03:16.080><c> for</c><00:03:16.260><c> dynamic</c><00:03:16.680><c> types</c><00:03:16.920><c> to</c><00:03:17.040><c> go</c>

00:03:17.570 --> 00:03:17.580 align:start position:0%
but at least for dynamic types to go
 

00:03:17.580 --> 00:03:19.369 align:start position:0%
but at least for dynamic types to go
full<00:03:17.879><c> way</c><00:03:18.120><c> we</c><00:03:18.780><c> cannot</c><00:03:19.019><c> do</c><00:03:19.140><c> that</c><00:03:19.260><c> anymore</c>

00:03:19.369 --> 00:03:19.379 align:start position:0%
full way we cannot do that anymore
 

00:03:19.379 --> 00:03:20.690 align:start position:0%
full way we cannot do that anymore
because<00:03:19.680><c> we</c><00:03:19.860><c> don't</c><00:03:19.980><c> know</c><00:03:20.099><c> the</c><00:03:20.280><c> length</c><00:03:20.519><c> of</c><00:03:20.580><c> the</c>

00:03:20.690 --> 00:03:20.700 align:start position:0%
because we don't know the length of the
 

00:03:20.700 --> 00:03:22.610 align:start position:0%
because we don't know the length of the
thing<00:03:20.819><c> so</c><00:03:21.000><c> we</c><00:03:21.180><c> can't</c><00:03:21.300><c> reserve</c><00:03:21.900><c> space</c><00:03:22.140><c> in</c>

00:03:22.610 --> 00:03:22.620 align:start position:0%
thing so we can't reserve space in
 

00:03:22.620 --> 00:03:24.589 align:start position:0%
thing so we can't reserve space in
bytecode<00:03:23.220><c> for</c><00:03:23.459><c> that</c><00:03:23.580><c> so</c><00:03:23.940><c> instead</c><00:03:24.239><c> we</c><00:03:24.420><c> need</c><00:03:24.540><c> to</c>

00:03:24.589 --> 00:03:24.599 align:start position:0%
bytecode for that so instead we need to
 

00:03:24.599 --> 00:03:26.750 align:start position:0%
bytecode for that so instead we need to
rely<00:03:24.959><c> on</c><00:03:25.080><c> code</c><00:03:25.680><c> copy</c>

00:03:26.750 --> 00:03:26.760 align:start position:0%
rely on code copy
 

00:03:26.760 --> 00:03:29.630 align:start position:0%
rely on code copy
and<00:03:27.360><c> yeah</c><00:03:27.599><c> I</c><00:03:27.780><c> already</c><00:03:27.959><c> mentioned</c><00:03:28.440><c> we</c><00:03:29.280><c> will</c>

00:03:29.630 --> 00:03:29.640 align:start position:0%
and yeah I already mentioned we will
 

00:03:29.640 --> 00:03:32.509 align:start position:0%
and yeah I already mentioned we will
probably<00:03:29.940><c> want</c><00:03:30.780><c> to</c><00:03:30.959><c> pass</c><00:03:31.200><c> the</c><00:03:31.620><c> immutables</c><00:03:32.280><c> by</c>

00:03:32.509 --> 00:03:32.519 align:start position:0%
probably want to pass the immutables by
 

00:03:32.519 --> 00:03:34.550 align:start position:0%
probably want to pass the immutables by
around<00:03:32.700><c> by</c><00:03:33.000><c> reference</c><00:03:33.360><c> we</c><00:03:33.599><c> will</c><00:03:33.840><c> want</c><00:03:34.440><c> to</c>

00:03:34.550 --> 00:03:34.560 align:start position:0%
around by reference we will want to
 

00:03:34.560 --> 00:03:35.750 align:start position:0%
around by reference we will want to
slice<00:03:34.860><c> them</c>

00:03:35.750 --> 00:03:35.760 align:start position:0%
slice them
 

00:03:35.760 --> 00:03:37.610 align:start position:0%
slice them
which<00:03:36.420><c> if</c><00:03:36.599><c> you</c><00:03:36.780><c> think</c><00:03:36.959><c> about</c><00:03:37.140><c> all</c><00:03:37.379><c> of</c><00:03:37.560><c> that</c>

00:03:37.610 --> 00:03:37.620 align:start position:0%
which if you think about all of that
 

00:03:37.620 --> 00:03:38.449 align:start position:0%
which if you think about all of that
together

00:03:38.449 --> 00:03:38.459 align:start position:0%
together
 

00:03:38.459 --> 00:03:41.270 align:start position:0%
together
makes<00:03:39.120><c> immutables</c><00:03:39.840><c> not</c><00:03:40.019><c> an</c><00:03:40.200><c> annotation</c><00:03:40.620><c> for</c><00:03:41.099><c> a</c>

00:03:41.270 --> 00:03:41.280 align:start position:0%
makes immutables not an annotation for a
 

00:03:41.280 --> 00:03:42.649 align:start position:0%
makes immutables not an annotation for a
staple<00:03:41.640><c> arrival</c><00:03:41.879><c> anymore</c><00:03:42.060><c> but</c><00:03:42.420><c> it</c><00:03:42.540><c> will</c>

00:03:42.649 --> 00:03:42.659 align:start position:0%
staple arrival anymore but it will
 

00:03:42.659 --> 00:03:46.190 align:start position:0%
staple arrival anymore but it will
become<00:03:43.019><c> a</c><00:03:43.260><c> proper</c><00:03:43.620><c> whole</c><00:03:44.159><c> data</c><00:03:44.819><c> location</c>

00:03:46.190 --> 00:03:46.200 align:start position:0%
become a proper whole data location
 

00:03:46.200 --> 00:03:48.289 align:start position:0%
become a proper whole data location
so<00:03:46.560><c> this</c><00:03:46.799><c> will</c><00:03:46.980><c> probably</c><00:03:47.220><c> look</c><00:03:47.640><c> like</c><00:03:47.819><c> this</c><00:03:48.060><c> in</c>

00:03:48.289 --> 00:03:48.299 align:start position:0%
so this will probably look like this in
 

00:03:48.299 --> 00:03:49.369 align:start position:0%
so this will probably look like this in
the<00:03:48.420><c> end</c>

00:03:49.369 --> 00:03:49.379 align:start position:0%
the end
 

00:03:49.379 --> 00:03:51.589 align:start position:0%
the end
as<00:03:49.799><c> I</c><00:03:49.920><c> said</c><00:03:50.040><c> the</c><00:03:50.280><c> drive</c><00:03:50.760><c> in</c><00:03:51.000><c> the</c><00:03:51.120><c> end</c><00:03:51.180><c> will</c><00:03:51.360><c> live</c>

00:03:51.589 --> 00:03:51.599 align:start position:0%
as I said the drive in the end will live
 

00:03:51.599 --> 00:03:54.229 align:start position:0%
as I said the drive in the end will live
in<00:03:51.720><c> code</c><00:03:51.959><c> so</c><00:03:52.500><c> code</c><00:03:52.920><c> and</c><00:03:53.340><c> the</c><00:03:53.580><c> op</c><00:03:53.760><c> code</c><00:03:53.940><c> that</c>

00:03:54.229 --> 00:03:54.239 align:start position:0%
in code so code and the op code that
 

00:03:54.239 --> 00:03:56.330 align:start position:0%
in code so code and the op code that
will<00:03:54.360><c> access</c><00:03:54.599><c> it</c><00:03:54.840><c> is</c><00:03:55.019><c> code</c><00:03:55.200><c> copy</c><00:03:55.620><c> so</c><00:03:55.799><c> code</c><00:03:56.040><c> is</c><00:03:56.220><c> a</c>

00:03:56.330 --> 00:03:56.340 align:start position:0%
will access it is code copy so code is a
 

00:03:56.340 --> 00:03:58.250 align:start position:0%
will access it is code copy so code is a
natural<00:03:56.459><c> name</c><00:03:56.760><c> for</c><00:03:56.940><c> these</c><00:03:57.120><c> things</c><00:03:57.239><c> so</c><00:03:57.840><c> here</c><00:03:58.019><c> I</c>

00:03:58.250 --> 00:03:58.260 align:start position:0%
natural name for these things so here I
 

00:03:58.260 --> 00:04:00.289 align:start position:0%
natural name for these things so here I
have<00:03:58.319><c> a</c><00:03:58.560><c> data</c><00:03:58.920><c> arrival</c><00:03:59.640><c> that</c><00:03:59.819><c> bites</c><00:04:00.180><c> the</c>

00:04:00.289 --> 00:04:00.299 align:start position:0%
have a data arrival that bites the
 

00:04:00.299 --> 00:04:02.390 align:start position:0%
have a data arrival that bites the
dynamic<00:04:01.019><c> array</c>

00:04:02.390 --> 00:04:02.400 align:start position:0%
dynamic array
 

00:04:02.400 --> 00:04:04.910 align:start position:0%
dynamic array
in<00:04:03.060><c> code</c><00:04:03.299><c> which</c><00:04:03.780><c> I</c><00:04:03.959><c> can</c><00:04:04.080><c> then</c><00:04:04.260><c> in</c><00:04:04.799><c> the</c>

00:04:04.910 --> 00:04:04.920 align:start position:0%
in code which I can then in the
 

00:04:04.920 --> 00:04:07.009 align:start position:0%
in code which I can then in the
Constructor<00:04:05.220><c> just</c><00:04:05.940><c> treat</c><00:04:06.299><c> like</c><00:04:06.599><c> any</c><00:04:06.780><c> old</c>

00:04:07.009 --> 00:04:07.019 align:start position:0%
Constructor just treat like any old
 

00:04:07.019 --> 00:04:10.009 align:start position:0%
Constructor just treat like any old
memory<00:04:07.319><c> variable</c><00:04:07.680><c> assigned</c><00:04:08.640><c> to</c><00:04:08.700><c> it</c><00:04:08.879><c> modify</c><00:04:09.840><c> it</c>

00:04:10.009 --> 00:04:10.019 align:start position:0%
memory variable assigned to it modify it
 

00:04:10.019 --> 00:04:12.770 align:start position:0%
memory variable assigned to it modify it
freely<00:04:10.680><c> you</c><00:04:11.280><c> can</c><00:04:11.519><c> drop</c><00:04:11.700><c> the</c><00:04:11.939><c> requirement</c><00:04:12.360><c> that</c>

00:04:12.770 --> 00:04:12.780 align:start position:0%
freely you can drop the requirement that
 

00:04:12.780 --> 00:04:14.089 align:start position:0%
freely you can drop the requirement that
it's<00:04:12.959><c> only</c><00:04:13.140><c> written</c><00:04:13.500><c> to</c><00:04:13.620><c> Once</c><00:04:13.860><c> In</c><00:04:13.980><c> The</c>

00:04:14.089 --> 00:04:14.099 align:start position:0%
it's only written to Once In The
 

00:04:14.099 --> 00:04:15.589 align:start position:0%
it's only written to Once In The
Constructor<00:04:14.400><c> because</c><00:04:14.640><c> that</c><00:04:14.879><c> was</c><00:04:15.060><c> always</c><00:04:15.239><c> an</c>

00:04:15.589 --> 00:04:15.599 align:start position:0%
Constructor because that was always an
 

00:04:15.599 --> 00:04:19.250 align:start position:0%
Constructor because that was always an
artificial<00:04:16.019><c> requirement</c><00:04:16.500><c> so</c><00:04:17.459><c> if</c><00:04:17.820><c> we</c><00:04:17.940><c> actually</c>

00:04:19.250 --> 00:04:19.260 align:start position:0%
artificial requirement so if we actually
 

00:04:19.260 --> 00:04:22.250 align:start position:0%
artificial requirement so if we actually
yeah<00:04:19.859><c> called</c><00:04:20.220><c> it</c><00:04:20.459><c> but</c><00:04:20.880><c> it</c><00:04:21.120><c> is</c><00:04:21.239><c> a</c><00:04:21.600><c> code</c><00:04:21.720><c> varietal</c>

00:04:22.250 --> 00:04:22.260 align:start position:0%
yeah called it but it is a code varietal
 

00:04:22.260 --> 00:04:24.530 align:start position:0%
yeah called it but it is a code varietal
that<00:04:22.380><c> will</c><00:04:22.560><c> actually</c><00:04:22.800><c> be</c><00:04:23.340><c> inserted</c><00:04:23.820><c> into</c><00:04:23.940><c> used</c>

00:04:24.530 --> 00:04:24.540 align:start position:0%
that will actually be inserted into used
 

00:04:24.540 --> 00:04:27.230 align:start position:0%
that will actually be inserted into used
as<00:04:24.840><c> in</c><00:04:25.139><c> the</c><00:04:25.320><c> code</c><00:04:25.440><c> in</c><00:04:25.740><c> the</c><00:04:25.919><c> end</c><00:04:26.040><c> we</c><00:04:26.820><c> can</c><00:04:26.940><c> freely</c>

00:04:27.230 --> 00:04:27.240 align:start position:0%
as in the code in the end we can freely
 

00:04:27.240 --> 00:04:28.550 align:start position:0%
as in the code in the end we can freely
modify<00:04:27.660><c> it</c>

00:04:28.550 --> 00:04:28.560 align:start position:0%
modify it
 

00:04:28.560 --> 00:04:30.469 align:start position:0%
modify it
and<00:04:29.040><c> then</c><00:04:29.100><c> in</c><00:04:29.280><c> the</c><00:04:29.400><c> runtime</c><00:04:29.639><c> code</c>

00:04:30.469 --> 00:04:30.479 align:start position:0%
and then in the runtime code
 

00:04:30.479 --> 00:04:32.330 align:start position:0%
and then in the runtime code
it<00:04:31.020><c> basically</c><00:04:31.199><c> behaves</c><00:04:31.620><c> like</c><00:04:31.740><c> a</c><00:04:31.860><c> call</c><00:04:31.979><c> data</c>

00:04:32.330 --> 00:04:32.340 align:start position:0%
it basically behaves like a call data
 

00:04:32.340 --> 00:04:33.710 align:start position:0%
it basically behaves like a call data
reference<00:04:32.520><c> a</c><00:04:32.699><c> read-only</c><00:04:33.120><c> reference</c><00:04:33.419><c> only</c>

00:04:33.710 --> 00:04:33.720 align:start position:0%
reference a read-only reference only
 

00:04:33.720 --> 00:04:35.150 align:start position:0%
reference a read-only reference only
that<00:04:33.960><c> it</c><00:04:34.080><c> doesn't</c><00:04:34.199><c> come</c><00:04:34.380><c> from</c><00:04:34.500><c> call</c><00:04:34.620><c> data</c><00:04:35.040><c> but</c>

00:04:35.150 --> 00:04:35.160 align:start position:0%
that it doesn't come from call data but
 

00:04:35.160 --> 00:04:36.350 align:start position:0%
that it doesn't come from call data but
from<00:04:35.340><c> code</c>

00:04:36.350 --> 00:04:36.360 align:start position:0%
from code
 

00:04:36.360 --> 00:04:38.330 align:start position:0%
from code
so<00:04:36.720><c> I</c><00:04:36.960><c> can</c><00:04:37.080><c> slice</c><00:04:37.440><c> it</c>

00:04:38.330 --> 00:04:38.340 align:start position:0%
so I can slice it
 

00:04:38.340 --> 00:04:40.790 align:start position:0%
so I can slice it
have<00:04:38.699><c> local</c><00:04:38.940><c> references</c><00:04:39.540><c> to</c><00:04:39.720><c> it</c><00:04:39.900><c> and</c><00:04:40.380><c> pass</c><00:04:40.560><c> it</c>

00:04:40.790 --> 00:04:40.800 align:start position:0%
have local references to it and pass it
 

00:04:40.800 --> 00:04:43.249 align:start position:0%
have local references to it and pass it
around<00:04:40.919><c> the</c><00:04:41.160><c> functions</c><00:04:41.580><c> all</c><00:04:42.540><c> with</c><00:04:42.900><c> very</c>

00:04:43.249 --> 00:04:43.259 align:start position:0%
around the functions all with very
 

00:04:43.259 --> 00:04:45.469 align:start position:0%
around the functions all with very
little<00:04:43.440><c> cost</c>

00:04:45.469 --> 00:04:45.479 align:start position:0%
little cost
 

00:04:45.479 --> 00:04:47.390 align:start position:0%
little cost
this<00:04:45.900><c> will</c><00:04:46.080><c> be</c><00:04:46.259><c> a</c><00:04:46.380><c> bit</c><00:04:46.500><c> tricky</c><00:04:46.800><c> to</c><00:04:46.919><c> write</c><00:04:47.040><c> to</c>

00:04:47.390 --> 00:04:47.400 align:start position:0%
this will be a bit tricky to write to
 

00:04:47.400 --> 00:04:49.129 align:start position:0%
this will be a bit tricky to write to
type<00:04:47.520><c> check</c><00:04:47.699><c> in</c><00:04:47.880><c> the</c><00:04:48.000><c> end</c><00:04:48.120><c> because</c><00:04:48.240><c> yeah</c><00:04:48.540><c> in</c>

00:04:49.129 --> 00:04:49.139 align:start position:0%
type check in the end because yeah in
 

00:04:49.139 --> 00:04:50.230 align:start position:0%
type check in the end because yeah in
the<00:04:49.259><c> Constructor</c>

00:04:50.230 --> 00:04:50.240 align:start position:0%
the Constructor
 

00:04:50.240 --> 00:04:52.969 align:start position:0%
the Constructor
it<00:04:51.240><c> is</c><00:04:51.360><c> a</c><00:04:51.479><c> memory</c><00:04:51.660><c> reliable</c><00:04:52.080><c> in</c><00:04:52.320><c> the</c><00:04:52.500><c> runtime</c>

00:04:52.969 --> 00:04:52.979 align:start position:0%
it is a memory reliable in the runtime
 

00:04:52.979 --> 00:04:55.790 align:start position:0%
it is a memory reliable in the runtime
code<00:04:53.340><c> it</c><00:04:54.240><c> vs</c><00:04:54.600><c> differently</c><00:04:55.020><c> so</c><00:04:55.380><c> if</c><00:04:55.620><c> the</c>

00:04:55.790 --> 00:04:55.800 align:start position:0%
code it vs differently so if the
 

00:04:55.800 --> 00:04:57.590 align:start position:0%
code it vs differently so if the
Constructor<00:04:56.280><c> calls</c><00:04:56.880><c> functions</c><00:04:57.240><c> we</c><00:04:57.419><c> need</c><00:04:57.540><c> to</c>

00:04:57.590 --> 00:04:57.600 align:start position:0%
Constructor calls functions we need to
 

00:04:57.600 --> 00:04:59.570 align:start position:0%
Constructor calls functions we need to
type<00:04:57.780><c> check</c><00:04:58.020><c> everything</c><00:04:58.259><c> twice</c><00:04:58.740><c> but</c>

00:04:59.570 --> 00:04:59.580 align:start position:0%
type check everything twice but
 

00:04:59.580 --> 00:05:01.550 align:start position:0%
type check everything twice but
we<00:05:00.180><c> have</c><00:05:00.360><c> different</c><00:05:00.600><c> costs</c><00:05:01.020><c> for</c><00:05:01.139><c> a</c><00:05:01.259><c> refract</c>

00:05:01.550 --> 00:05:01.560 align:start position:0%
we have different costs for a refract
 

00:05:01.560 --> 00:05:02.870 align:start position:0%
we have different costs for a refract
factor<00:05:01.860><c> in</c><00:05:01.979><c> the</c><00:05:02.100><c> type</c><00:05:02.160><c> Checker</c><00:05:02.580><c> to</c><00:05:02.699><c> actually</c>

00:05:02.870 --> 00:05:02.880 align:start position:0%
factor in the type Checker to actually
 

00:05:02.880 --> 00:05:06.110 align:start position:0%
factor in the type Checker to actually
do<00:05:03.180><c> that</c><00:05:03.419><c> as</c><00:05:03.900><c> well</c><00:05:04.080><c> so</c><00:05:04.440><c> we</c><00:05:04.800><c> will</c><00:05:04.919><c> do</c><00:05:05.160><c> that</c>

00:05:06.110 --> 00:05:06.120 align:start position:0%
do that as well so we will do that
 

00:05:06.120 --> 00:05:07.790 align:start position:0%
do that as well so we will do that
and<00:05:06.660><c> there's</c><00:05:06.780><c> still</c><00:05:06.960><c> some</c><00:05:07.139><c> considerations</c><00:05:07.560><c> of</c>

00:05:07.790 --> 00:05:07.800 align:start position:0%
and there's still some considerations of
 

00:05:07.800 --> 00:05:09.830 align:start position:0%
and there's still some considerations of
gas<00:05:07.919><c> it</c><00:05:08.160><c> would</c><00:05:08.340><c> be</c><00:05:08.460><c> very</c><00:05:08.639><c> handy</c><00:05:09.000><c> if</c><00:05:09.120><c> I</c><00:05:09.360><c> had</c><00:05:09.540><c> a</c>

00:05:09.830 --> 00:05:09.840 align:start position:0%
gas it would be very handy if I had a
 

00:05:09.840 --> 00:05:12.469 align:start position:0%
gas it would be very handy if I had a
code<00:05:10.199><c> load</c><00:05:10.680><c> opcode</c><00:05:11.400><c> similar</c><00:05:11.820><c> to</c><00:05:11.880><c> a</c><00:05:12.000><c> call</c><00:05:12.180><c> data</c>

00:05:12.469 --> 00:05:12.479 align:start position:0%
code load opcode similar to a call data
 

00:05:12.479 --> 00:05:15.530 align:start position:0%
code load opcode similar to a call data
output<00:05:12.900><c> to</c><00:05:13.320><c> actually</c><00:05:13.500><c> read</c>

00:05:15.530 --> 00:05:15.540 align:start position:0%
output to actually read
 

00:05:15.540 --> 00:05:19.550 align:start position:0%
output to actually read
single<00:05:16.199><c> words</c><00:05:16.380><c> from</c><00:05:16.800><c> code</c><00:05:17.100><c> but</c><00:05:17.639><c> we</c><00:05:18.540><c> don't</c><00:05:18.660><c> so</c>

00:05:19.550 --> 00:05:19.560 align:start position:0%
single words from code but we don't so
 

00:05:19.560 --> 00:05:21.830 align:start position:0%
single words from code but we don't so
we<00:05:20.160><c> will</c><00:05:20.340><c> whenever</c><00:05:20.759><c> possible</c><00:05:21.180><c> probably</c><00:05:21.479><c> still</c>

00:05:21.830 --> 00:05:21.840 align:start position:0%
we will whenever possible probably still
 

00:05:21.840 --> 00:05:23.450 align:start position:0%
we will whenever possible probably still
use<00:05:22.080><c> the</c><00:05:22.259><c> same</c><00:05:22.380><c> mechanism</c><00:05:22.740><c> as</c><00:05:22.919><c> a</c><00:05:23.100><c> mutable</c><00:05:23.340><c> to</c>

00:05:23.450 --> 00:05:23.460 align:start position:0%
use the same mechanism as a mutable to
 

00:05:23.460 --> 00:05:25.249 align:start position:0%
use the same mechanism as a mutable to
use<00:05:23.580><c> now</c><00:05:23.759><c> to</c><00:05:24.000><c> actually</c><00:05:24.180><c> fill</c><00:05:24.419><c> it</c><00:05:24.600><c> into</c><00:05:24.840><c> a</c><00:05:25.080><c> push</c>

00:05:25.249 --> 00:05:25.259 align:start position:0%
use now to actually fill it into a push
 

00:05:25.259 --> 00:05:28.790 align:start position:0%
use now to actually fill it into a push
argument<00:05:26.300><c> invite</c><00:05:27.300><c> code</c><00:05:27.539><c> if</c><00:05:28.139><c> not</c><00:05:28.380><c> we</c><00:05:28.620><c> will</c>

00:05:28.790 --> 00:05:28.800 align:start position:0%
argument invite code if not we will
 

00:05:28.800 --> 00:05:32.510 align:start position:0%
argument invite code if not we will
probably<00:05:28.979><c> yeah</c><00:05:29.759><c> code</c><00:05:30.120><c> copy</c><00:05:30.600><c> either</c><00:05:30.979><c> in</c><00:05:31.979><c> an</c>

00:05:32.510 --> 00:05:32.520 align:start position:0%
probably yeah code copy either in an
 

00:05:32.520 --> 00:05:34.909 align:start position:0%
probably yeah code copy either in an
entire<00:05:32.759><c> memory</c><00:05:33.240><c> or</c><00:05:33.840><c> if</c><00:05:34.020><c> you</c><00:05:34.139><c> just</c><00:05:34.259><c> need</c><00:05:34.500><c> a</c>

00:05:34.909 --> 00:05:34.919 align:start position:0%
entire memory or if you just need a
 

00:05:34.919 --> 00:05:38.210 align:start position:0%
entire memory or if you just need a
snippet<00:05:35.520><c> of</c><00:05:35.699><c> a</c><00:05:36.199><c> dynamic</c><00:05:37.199><c> array</c><00:05:37.500><c> called</c><00:05:37.800><c> copy</c>

00:05:38.210 --> 00:05:38.220 align:start position:0%
snippet of a dynamic array called copy
 

00:05:38.220 --> 00:05:40.610 align:start position:0%
snippet of a dynamic array called copy
to<00:05:38.340><c> scratch</c><00:05:38.520><c> space</c><00:05:38.759><c> and</c><00:05:38.940><c> M</c><00:05:39.120><c> load</c><00:05:39.300><c> from</c><00:05:39.419><c> there</c>

00:05:40.610 --> 00:05:40.620 align:start position:0%
to scratch space and M load from there
 

00:05:40.620 --> 00:05:42.590 align:start position:0%
to scratch space and M load from there
that<00:05:41.100><c> will</c><00:05:41.340><c> still</c><00:05:41.580><c> be</c><00:05:41.699><c> significantly</c><00:05:42.240><c> cheaper</c>

00:05:42.590 --> 00:05:42.600 align:start position:0%
that will still be significantly cheaper
 

00:05:42.600 --> 00:05:45.110 align:start position:0%
that will still be significantly cheaper
than<00:05:42.720><c> anything</c><00:05:43.020><c> in</c><00:05:43.259><c> storage</c><00:05:43.440><c> okay</c><00:05:44.400><c> yeah</c><00:05:44.699><c> that</c>

00:05:45.110 --> 00:05:45.120 align:start position:0%
than anything in storage okay yeah that
 

00:05:45.120 --> 00:05:46.969 align:start position:0%
than anything in storage okay yeah that
was<00:05:45.360><c> the</c><00:05:45.780><c> first</c><00:05:45.900><c> topic</c><00:05:46.380><c> I</c><00:05:46.500><c> wanted</c><00:05:46.620><c> to</c><00:05:46.800><c> talk</c>

00:05:46.969 --> 00:05:46.979 align:start position:0%
was the first topic I wanted to talk
 

00:05:46.979 --> 00:05:49.070 align:start position:0%
was the first topic I wanted to talk
about<00:05:47.100><c> the</c><00:05:47.699><c> second</c><00:05:47.820><c> thing</c><00:05:48.060><c> that</c><00:05:48.360><c> you</c><00:05:48.539><c> may</c><00:05:48.780><c> have</c>

00:05:49.070 --> 00:05:49.080 align:start position:0%
about the second thing that you may have
 

00:05:49.080 --> 00:05:51.469 align:start position:0%
about the second thing that you may have
noticed<00:05:49.740><c> in</c><00:05:49.860><c> the</c><00:05:50.039><c> recent</c><00:05:50.220><c> versions</c><00:05:50.520><c> is</c><00:05:50.940><c> our</c>

00:05:51.469 --> 00:05:51.479 align:start position:0%
noticed in the recent versions is our
 

00:05:51.479 --> 00:05:53.870 align:start position:0%
noticed in the recent versions is our
move<00:05:51.720><c> to</c><00:05:51.960><c> uh</c><00:05:52.620><c> to</c><00:05:52.919><c> allow</c><00:05:53.100><c> user-defined</c><00:05:53.699><c> value</c>

00:05:53.870 --> 00:05:53.880 align:start position:0%
move to uh to allow user-defined value
 

00:05:53.880 --> 00:05:56.689 align:start position:0%
move to uh to allow user-defined value
types<00:05:54.360><c> go</c><00:05:54.840><c> to</c><00:05:54.960><c> test</c><00:05:55.380><c> case</c><00:05:55.680><c> for</c><00:05:56.039><c> this</c><00:05:56.340><c> concept</c>

00:05:56.689 --> 00:05:56.699 align:start position:0%
types go to test case for this concept
 

00:05:56.699 --> 00:05:58.249 align:start position:0%
types go to test case for this concept
was<00:05:56.940><c> always</c><00:05:57.120><c> fixed</c><00:05:57.539><c> Point</c><00:05:57.600><c> types</c><00:05:57.960><c> which</c><00:05:58.080><c> we</c>

00:05:58.249 --> 00:05:58.259 align:start position:0%
was always fixed Point types which we
 

00:05:58.259 --> 00:06:00.230 align:start position:0%
was always fixed Point types which we
decided<00:05:58.740><c> to</c><00:05:58.860><c> not</c><00:05:59.100><c> Implement</c><00:05:59.460><c> as</c><00:05:59.759><c> a</c><00:06:00.060><c> first</c>

00:06:00.230 --> 00:06:00.240 align:start position:0%
decided to not Implement as a first
 

00:06:00.240 --> 00:06:02.629 align:start position:0%
decided to not Implement as a first
citizen<00:06:00.720><c> type</c><00:06:00.840><c> in</c><00:06:01.139><c> the</c><00:06:01.320><c> in</c><00:06:01.680><c> the</c><00:06:01.979><c> type</c><00:06:02.460><c> system</c>

00:06:02.629 --> 00:06:02.639 align:start position:0%
citizen type in the in the type system
 

00:06:02.639 --> 00:06:05.270 align:start position:0%
citizen type in the in the type system
but<00:06:03.060><c> to</c><00:06:04.020><c> build</c><00:06:04.320><c> the</c><00:06:04.560><c> infrastructure</c><00:06:05.039><c> to</c>

00:06:05.270 --> 00:06:05.280 align:start position:0%
but to build the infrastructure to
 

00:06:05.280 --> 00:06:07.189 align:start position:0%
but to build the infrastructure to
Define<00:06:05.400><c> it</c><00:06:05.699><c> as</c><00:06:05.820><c> a</c><00:06:05.940><c> user-defined</c><00:06:06.539><c> type</c><00:06:06.660><c> yeah</c>

00:06:07.189 --> 00:06:07.199 align:start position:0%
Define it as a user-defined type yeah
 

00:06:07.199 --> 00:06:09.050 align:start position:0%
Define it as a user-defined type yeah
I'm<00:06:07.620><c> assuming</c><00:06:08.039><c> that</c><00:06:08.280><c> you're</c><00:06:08.400><c> familiar</c><00:06:08.820><c> with</c>

00:06:09.050 --> 00:06:09.060 align:start position:0%
I'm assuming that you're familiar with
 

00:06:09.060 --> 00:06:11.270 align:start position:0%
I'm assuming that you're familiar with
those<00:06:09.300><c> uh</c><00:06:09.960><c> so</c><00:06:10.199><c> I</c><00:06:10.320><c> won't</c><00:06:10.500><c> go</c><00:06:10.680><c> into</c><00:06:10.800><c> that</c><00:06:11.160><c> much</c>

00:06:11.270 --> 00:06:11.280 align:start position:0%
those uh so I won't go into that much
 

00:06:11.280 --> 00:06:13.510 align:start position:0%
those uh so I won't go into that much
more<00:06:11.460><c> detail</c><00:06:12.000><c> in</c><00:06:12.240><c> the</c><00:06:12.300><c> basic</c><00:06:12.660><c> concept</c>

00:06:13.510 --> 00:06:13.520 align:start position:0%
more detail in the basic concept
 

00:06:13.520 --> 00:06:15.409 align:start position:0%
more detail in the basic concept
which

00:06:15.409 --> 00:06:15.419 align:start position:0%
which
 

00:06:15.419 --> 00:06:18.230 align:start position:0%
which
what<00:06:15.900><c> we</c><00:06:16.139><c> recently</c><00:06:16.620><c> added</c><00:06:17.400><c> or</c><00:06:17.759><c> more</c><00:06:17.940><c> recently</c>

00:06:18.230 --> 00:06:18.240 align:start position:0%
what we recently added or more recently
 

00:06:18.240 --> 00:06:20.570 align:start position:0%
what we recently added or more recently
added<00:06:18.600><c> is</c><00:06:18.960><c> This</c><00:06:19.380><c> Global</c><00:06:19.740><c> keyword</c><00:06:20.100><c> you</c><00:06:20.280><c> see</c><00:06:20.460><c> in</c>

00:06:20.570 --> 00:06:20.580 align:start position:0%
added is This Global keyword you see in
 

00:06:20.580 --> 00:06:22.670 align:start position:0%
added is This Global keyword you see in
the<00:06:20.699><c> first</c><00:06:20.759><c> using</c><00:06:21.180><c> statement</c><00:06:21.479><c> which</c><00:06:22.199><c> means</c>

00:06:22.670 --> 00:06:22.680 align:start position:0%
the first using statement which means
 

00:06:22.680 --> 00:06:25.330 align:start position:0%
the first using statement which means
that<00:06:23.039><c> currently</c><00:06:23.819><c> a</c><00:06:24.240><c> using</c><00:06:24.539><c> statement</c><00:06:24.840><c> is</c><00:06:25.020><c> only</c>

00:06:25.330 --> 00:06:25.340 align:start position:0%
that currently a using statement is only
 

00:06:25.340 --> 00:06:28.670 align:start position:0%
that currently a using statement is only
locally<00:06:26.340><c> effective</c><00:06:27.060><c> whereas</c>

00:06:28.670 --> 00:06:28.680 align:start position:0%
locally effective whereas
 

00:06:28.680 --> 00:06:30.409 align:start position:0%
locally effective whereas
a<00:06:28.860><c> using</c><00:06:29.280><c> statement</c><00:06:29.520><c> with</c><00:06:29.699><c> a</c><00:06:29.819><c> global</c><00:06:30.120><c> at</c><00:06:30.300><c> the</c>

00:06:30.409 --> 00:06:30.419 align:start position:0%
a using statement with a global at the
 

00:06:30.419 --> 00:06:34.370 align:start position:0%
a using statement with a global at the
end<00:06:30.539><c> will</c><00:06:31.139><c> only</c><00:06:31.500><c> be</c><00:06:31.740><c> allowed</c><00:06:32.160><c> in</c><00:06:32.940><c> the</c><00:06:33.900><c> very</c>

00:06:34.370 --> 00:06:34.380 align:start position:0%
end will only be allowed in the very
 

00:06:34.380 --> 00:06:36.170 align:start position:0%
end will only be allowed in the very
same<00:06:34.620><c> source</c><00:06:34.979><c> file</c><00:06:35.100><c> in</c><00:06:35.280><c> which</c><00:06:35.400><c> you</c><00:06:35.580><c> define</c><00:06:35.699><c> the</c>

00:06:36.170 --> 00:06:36.180 align:start position:0%
same source file in which you define the
 

00:06:36.180 --> 00:06:36.890 align:start position:0%
same source file in which you define the
type

00:06:36.890 --> 00:06:36.900 align:start position:0%
type
 

00:06:36.900 --> 00:06:38.330 align:start position:0%
type
but<00:06:37.199><c> we'll</c><00:06:37.440><c> have</c><00:06:37.560><c> that's</c><00:06:37.740><c> the</c><00:06:37.979><c> effect</c><00:06:38.039><c> that</c>

00:06:38.330 --> 00:06:38.340 align:start position:0%
but we'll have that's the effect that
 

00:06:38.340 --> 00:06:40.249 align:start position:0%
but we'll have that's the effect that
wherever<00:06:38.639><c> the</c><00:06:38.880><c> type</c><00:06:39.000><c> is</c><00:06:39.240><c> available</c><00:06:39.419><c> the</c>

00:06:40.249 --> 00:06:40.259 align:start position:0%
wherever the type is available the
 

00:06:40.259 --> 00:06:42.170 align:start position:0%
wherever the type is available the
functions<00:06:40.680><c> you</c><00:06:40.919><c> bound</c><00:06:41.160><c> to</c><00:06:41.400><c> the</c><00:06:41.580><c> type</c><00:06:41.759><c> will</c>

00:06:42.170 --> 00:06:42.180 align:start position:0%
functions you bound to the type will
 

00:06:42.180 --> 00:06:44.390 align:start position:0%
functions you bound to the type will
also<00:06:42.419><c> be</c><00:06:42.539><c> available</c><00:06:42.720><c> so</c><00:06:43.500><c> this</c><00:06:43.680><c> is</c><00:06:43.800><c> what</c><00:06:44.280><c> you</c>

00:06:44.390 --> 00:06:44.400 align:start position:0%
also be available so this is what you
 

00:06:44.400 --> 00:06:46.790 align:start position:0%
also be available so this is what you
can<00:06:44.580><c> do</c><00:06:44.699><c> then</c><00:06:45.000><c> in</c><00:06:45.300><c> the</c><00:06:45.419><c> end</c><00:06:45.539><c> practically</c><00:06:46.080><c> to</c>

00:06:46.790 --> 00:06:46.800 align:start position:0%
can do then in the end practically to
 

00:06:46.800 --> 00:06:49.490 align:start position:0%
can do then in the end practically to
write<00:06:47.039><c> type</c><00:06:47.520><c> libraries</c><00:06:48.240><c> when</c><00:06:48.960><c> you're</c><00:06:49.199><c> in</c><00:06:49.319><c> that</c>

00:06:49.490 --> 00:06:49.500 align:start position:0%
write type libraries when you're in that
 

00:06:49.500 --> 00:06:51.890 align:start position:0%
write type libraries when you're in that
Library<00:06:49.860><c> Define</c><00:06:50.280><c> the</c><00:06:50.580><c> type</c><00:06:50.840><c> equipped</c><00:06:51.840><c> with</c>

00:06:51.890 --> 00:06:51.900 align:start position:0%
Library Define the type equipped with
 

00:06:51.900 --> 00:06:54.050 align:start position:0%
Library Define the type equipped with
some<00:06:52.139><c> functions</c><00:06:52.560><c> and</c><00:06:53.039><c> then</c><00:06:53.160><c> anyone</c><00:06:53.639><c> importing</c>

00:06:54.050 --> 00:06:54.060 align:start position:0%
some functions and then anyone importing
 

00:06:54.060 --> 00:06:56.510 align:start position:0%
some functions and then anyone importing
the<00:06:54.240><c> type</c><00:06:54.419><c> only</c><00:06:54.720><c> can</c><00:06:55.680><c> still</c><00:06:55.979><c> use</c><00:06:56.160><c> all</c><00:06:56.340><c> the</c>

00:06:56.510 --> 00:06:56.520 align:start position:0%
the type only can still use all the
 

00:06:56.520 --> 00:06:58.730 align:start position:0%
the type only can still use all the
functions<00:06:56.819><c> on</c><00:06:56.940><c> that</c><00:06:57.360><c> still</c><00:06:58.080><c> of</c><00:06:58.319><c> course</c><00:06:58.440><c> one</c>

00:06:58.730 --> 00:06:58.740 align:start position:0%
functions on that still of course one
 

00:06:58.740 --> 00:07:00.350 align:start position:0%
functions on that still of course one
major<00:06:59.039><c> inconvenience</c><00:06:59.639><c> with</c><00:07:00.000><c> that</c><00:07:00.180><c> for</c>

00:07:00.350 --> 00:07:00.360 align:start position:0%
major inconvenience with that for
 

00:07:00.360 --> 00:07:01.790 align:start position:0%
major inconvenience with that for
defining<00:07:00.840><c> for</c><00:07:00.960><c> example</c><00:07:01.199><c> fixed</c><00:07:01.560><c> Point</c><00:07:01.620><c> times</c>

00:07:01.790 --> 00:07:01.800 align:start position:0%
defining for example fixed Point times
 

00:07:01.800 --> 00:07:03.710 align:start position:0%
defining for example fixed Point times
that<00:07:02.039><c> are</c><00:07:02.160><c> actually</c><00:07:02.280><c> nice</c><00:07:02.520><c> and</c><00:07:02.699><c> usable</c><00:07:03.060><c> is</c>

00:07:03.710 --> 00:07:03.720 align:start position:0%
that are actually nice and usable is
 

00:07:03.720 --> 00:07:06.890 align:start position:0%
that are actually nice and usable is
that<00:07:03.960><c> we</c><00:07:04.080><c> have</c><00:07:04.199><c> only</c><00:07:04.380><c> functions</c><00:07:04.979><c> in</c><00:07:05.880><c> that</c><00:07:06.720><c> can</c>

00:07:06.890 --> 00:07:06.900 align:start position:0%
that we have only functions in that can
 

00:07:06.900 --> 00:07:09.170 align:start position:0%
that we have only functions in that can
be<00:07:06.960><c> defined</c><00:07:07.319><c> and</c><00:07:07.620><c> equipped</c><00:07:08.580><c> to</c><00:07:08.699><c> the</c><00:07:08.819><c> type</c><00:07:08.940><c> but</c>

00:07:09.170 --> 00:07:09.180 align:start position:0%
be defined and equipped to the type but
 

00:07:09.180 --> 00:07:12.230 align:start position:0%
be defined and equipped to the type but
the<00:07:09.300><c> using</c><00:07:09.600><c> statements</c><00:07:10.020><c> which</c><00:07:10.860><c> is</c><00:07:11.160><c> what</c><00:07:11.580><c> we</c>

00:07:12.230 --> 00:07:12.240 align:start position:0%
the using statements which is what we
 

00:07:12.240 --> 00:07:13.909 align:start position:0%
the using statements which is what we
will<00:07:12.720><c> soon</c><00:07:12.960><c> change</c>

00:07:13.909 --> 00:07:13.919 align:start position:0%
will soon change
 

00:07:13.919 --> 00:07:16.969 align:start position:0%
will soon change
so<00:07:14.460><c> this</c><00:07:14.759><c> is</c><00:07:14.940><c> open</c><00:07:15.780><c> PRS</c><00:07:16.380><c> currently</c><00:07:16.620><c> that</c><00:07:16.800><c> are</c>

00:07:16.969 --> 00:07:16.979 align:start position:0%
so this is open PRS currently that are
 

00:07:16.979 --> 00:07:19.790 align:start position:0%
so this is open PRS currently that are
under<00:07:17.100><c> review</c><00:07:17.340><c> which</c><00:07:17.699><c> will</c><00:07:17.940><c> probably</c><00:07:18.259><c> yeah</c><00:07:19.259><c> in</c>

00:07:19.790 --> 00:07:19.800 align:start position:0%
under review which will probably yeah in
 

00:07:19.800 --> 00:07:22.969 align:start position:0%
under review which will probably yeah in
finite<00:07:20.400><c> amount</c><00:07:20.699><c> of</c><00:07:20.819><c> time</c><00:07:20.940><c> we</c><00:07:21.180><c> actually</c><00:07:21.979><c> merge</c>

00:07:22.969 --> 00:07:22.979 align:start position:0%
finite amount of time we actually merge
 

00:07:22.979 --> 00:07:25.450 align:start position:0%
finite amount of time we actually merge
and<00:07:23.039><c> come</c><00:07:23.220><c> through</c><00:07:23.400><c> which</c><00:07:24.360><c> will</c><00:07:24.720><c> allow</c>

00:07:25.450 --> 00:07:25.460 align:start position:0%
and come through which will allow
 

00:07:25.460 --> 00:07:28.010 align:start position:0%
and come through which will allow
user-defined<00:07:26.460><c> operators</c><00:07:26.819><c> and</c><00:07:27.060><c> literals</c><00:07:27.539><c> in</c>

00:07:28.010 --> 00:07:28.020 align:start position:0%
user-defined operators and literals in
 

00:07:28.020 --> 00:07:29.210 align:start position:0%
user-defined operators and literals in
uh

00:07:29.210 --> 00:07:29.220 align:start position:0%
uh
 

00:07:29.220 --> 00:07:31.070 align:start position:0%
uh
in<00:07:29.639><c> the</c><00:07:29.819><c> first</c><00:07:29.940><c> versions</c><00:07:30.180><c> in</c><00:07:30.419><c> a</c><00:07:30.599><c> very</c><00:07:30.660><c> limited</c>

00:07:31.070 --> 00:07:31.080 align:start position:0%
in the first versions in a very limited
 

00:07:31.080 --> 00:07:33.110 align:start position:0%
in the first versions in a very limited
setting<00:07:31.500><c> so</c><00:07:31.800><c> the</c><00:07:32.160><c> addition</c><00:07:32.340><c> for</c><00:07:32.580><c> example</c><00:07:32.819><c> can</c>

00:07:33.110 --> 00:07:33.120 align:start position:0%
setting so the addition for example can
 

00:07:33.120 --> 00:07:35.570 align:start position:0%
setting so the addition for example can
only<00:07:33.240><c> be</c><00:07:33.479><c> between</c><00:07:33.840><c> the</c><00:07:34.560><c> two</c><00:07:34.680><c> between</c><00:07:34.979><c> two</c>

00:07:35.570 --> 00:07:35.580 align:start position:0%
only be between the two between two
 

00:07:35.580 --> 00:07:37.249 align:start position:0%
only be between the two between two
expressions<00:07:36.240><c> of</c><00:07:36.479><c> the</c><00:07:36.599><c> type</c><00:07:36.720><c> that</c><00:07:37.020><c> you</c><00:07:37.139><c> define</c>

00:07:37.249 --> 00:07:37.259 align:start position:0%
expressions of the type that you define
 

00:07:37.259 --> 00:07:39.650 align:start position:0%
expressions of the type that you define
such<00:07:37.560><c> that</c><00:07:37.800><c> it's</c><00:07:38.039><c> not</c><00:07:38.580><c> getting</c><00:07:38.819><c> messy</c><00:07:39.240><c> and</c><00:07:39.419><c> you</c>

00:07:39.650 --> 00:07:39.660 align:start position:0%
such that it's not getting messy and you
 

00:07:39.660 --> 00:07:41.210 align:start position:0%
such that it's not getting messy and you
know<00:07:39.840><c> no</c><00:07:40.020><c> longer</c><00:07:40.259><c> know</c><00:07:40.440><c> what</c>

00:07:41.210 --> 00:07:41.220 align:start position:0%
know no longer know what
 

00:07:41.220 --> 00:07:43.430 align:start position:0%
know no longer know what
uh<00:07:41.940><c> function</c><00:07:42.240><c> will</c><00:07:42.419><c> actually</c><00:07:42.599><c> be</c><00:07:42.900><c> executed</c><00:07:43.259><c> if</c>

00:07:43.430 --> 00:07:43.440 align:start position:0%
uh function will actually be executed if
 

00:07:43.440 --> 00:07:45.650 align:start position:0%
uh function will actually be executed if
you<00:07:43.560><c> have</c><00:07:43.620><c> an</c><00:07:43.740><c> uh</c><00:07:44.280><c> an</c><00:07:44.759><c> operator</c><00:07:45.060><c> expression</c>

00:07:45.650 --> 00:07:45.660 align:start position:0%
you have an uh an operator expression
 

00:07:45.660 --> 00:07:49.550 align:start position:0%
you have an uh an operator expression
but<00:07:46.080><c> it</c><00:07:46.440><c> will</c><00:07:46.620><c> still</c><00:07:47.400><c> already</c><00:07:47.759><c> be</c><00:07:48.240><c> yeah</c><00:07:49.139><c> very</c>

00:07:49.550 --> 00:07:49.560 align:start position:0%
but it will still already be yeah very
 

00:07:49.560 --> 00:07:53.029 align:start position:0%
but it will still already be yeah very
useful<00:07:49.860><c> I</c><00:07:50.160><c> hope</c><00:07:50.539><c> uh</c><00:07:51.539><c> in</c><00:07:51.960><c> making</c><00:07:52.440><c> these</c><00:07:52.740><c> user</c>

00:07:53.029 --> 00:07:53.039 align:start position:0%
useful I hope uh in making these user
 

00:07:53.039 --> 00:07:55.610 align:start position:0%
useful I hope uh in making these user
event<00:07:53.160><c> types</c><00:07:53.520><c> more</c><00:07:53.699><c> yeah</c><00:07:54.539><c> convenient</c><00:07:55.199><c> to</c><00:07:55.440><c> use</c>

00:07:55.610 --> 00:07:55.620 align:start position:0%
event types more yeah convenient to use
 

00:07:55.620 --> 00:07:59.050 align:start position:0%
event types more yeah convenient to use
literal<00:07:56.580><c> similarly</c><00:07:57.120><c> we</c><00:07:57.419><c> will</c>

00:07:59.050 --> 00:07:59.060 align:start position:0%
literal similarly we will
 

00:07:59.060 --> 00:08:01.550 align:start position:0%
literal similarly we will
introduce<00:08:00.060><c> a</c><00:08:00.180><c> way</c><00:08:00.300><c> to</c><00:08:00.479><c> define</c><00:08:00.660><c> functions</c><00:08:01.259><c> that</c>

00:08:01.550 --> 00:08:01.560 align:start position:0%
introduce a way to define functions that
 

00:08:01.560 --> 00:08:07.330 align:start position:0%
introduce a way to define functions that
can<00:08:01.800><c> uh</c><00:08:03.240><c> take</c><00:08:03.960><c> up</c><00:08:04.199><c> as</c><00:08:04.800><c> argument</c><00:08:05.220><c> a</c>

00:08:07.330 --> 00:08:07.340 align:start position:0%
can uh take up as argument a
 

00:08:07.340 --> 00:08:09.770 align:start position:0%
can uh take up as argument a
mantissa<00:08:08.340><c> in</c><00:08:08.580><c> that</c><00:08:08.639><c> sense</c><00:08:08.880><c> and</c><00:08:09.180><c> an</c><00:08:09.300><c> exponent</c>

00:08:09.770 --> 00:08:09.780 align:start position:0%
mantissa in that sense and an exponent
 

00:08:09.780 --> 00:08:12.110 align:start position:0%
mantissa in that sense and an exponent
which<00:08:10.020><c> is</c><00:08:10.080><c> basically</c><00:08:10.440><c> yeah</c><00:08:10.979><c> here</c><00:08:11.699><c> for</c><00:08:11.940><c> example</c>

00:08:12.110 --> 00:08:12.120 align:start position:0%
which is basically yeah here for example
 

00:08:12.120 --> 00:08:13.990 align:start position:0%
which is basically yeah here for example
for<00:08:12.360><c> the</c><00:08:12.479><c> example</c><00:08:12.780><c> below</c><00:08:13.080><c> it</c><00:08:13.199><c> would</c><00:08:13.319><c> be</c>

00:08:13.990 --> 00:08:14.000 align:start position:0%
for the example below it would be
 

00:08:14.000 --> 00:08:18.050 align:start position:0%
for the example below it would be
115<00:08:15.000><c> and</c><00:08:15.720><c> the</c><00:08:15.840><c> exponent</c><00:08:16.199><c> is</c><00:08:16.440><c> 10</c><00:08:17.340><c> to</c><00:08:17.699><c> the</c><00:08:17.880><c> Tower</c>

00:08:18.050 --> 00:08:18.060 align:start position:0%
115 and the exponent is 10 to the Tower
 

00:08:18.060 --> 00:08:19.430 align:start position:0%
115 and the exponent is 10 to the Tower
of<00:08:18.240><c> minus</c><00:08:18.539><c> two</c>

00:08:19.430 --> 00:08:19.440 align:start position:0%
of minus two
 

00:08:19.440 --> 00:08:22.490 align:start position:0%
of minus two
which<00:08:19.979><c> will</c><00:08:20.280><c> allow</c><00:08:20.819><c> to</c><00:08:21.240><c> yeah</c><00:08:21.840><c> then</c><00:08:22.080><c> deal</c><00:08:22.319><c> with</c>

00:08:22.490 --> 00:08:22.500 align:start position:0%
which will allow to yeah then deal with
 

00:08:22.500 --> 00:08:24.710 align:start position:0%
which will allow to yeah then deal with
for<00:08:22.680><c> example</c><00:08:22.919><c> a</c><00:08:23.099><c> fixed</c><00:08:23.400><c> Point</c><00:08:23.460><c> setting</c><00:08:24.060><c> uh</c>

00:08:24.710 --> 00:08:24.720 align:start position:0%
for example a fixed Point setting uh
 

00:08:24.720 --> 00:08:26.749 align:start position:0%
for example a fixed Point setting uh
rather<00:08:25.440><c> gracefully</c><00:08:25.919><c> and</c><00:08:26.039><c> have</c><00:08:26.220><c> literals</c>

00:08:26.749 --> 00:08:26.759 align:start position:0%
rather gracefully and have literals
 

00:08:26.759 --> 00:08:28.189 align:start position:0%
rather gracefully and have literals
without

00:08:28.189 --> 00:08:28.199 align:start position:0%
without
 

00:08:28.199 --> 00:08:31.369 align:start position:0%
without
yeah<00:08:28.860><c> especially</c><00:08:29.460><c> code</c><00:08:29.639><c> constructs</c>

00:08:31.369 --> 00:08:31.379 align:start position:0%
yeah especially code constructs
 

00:08:31.379 --> 00:08:33.469 align:start position:0%
yeah especially code constructs
eventually<00:08:32.219><c> we</c><00:08:32.580><c> will</c><00:08:32.760><c> have</c><00:08:33.000><c> a</c><00:08:33.240><c> proper</c>

00:08:33.469 --> 00:08:33.479 align:start position:0%
eventually we will have a proper
 

00:08:33.479 --> 00:08:36.889 align:start position:0%
eventually we will have a proper
irrational<00:08:34.279><c> rational</c><00:08:35.279><c> literal</c><00:08:36.000><c> type</c><00:08:36.240><c> instead</c>

00:08:36.889 --> 00:08:36.899 align:start position:0%
irrational rational literal type instead
 

00:08:36.899 --> 00:08:39.649 align:start position:0%
irrational rational literal type instead
of<00:08:37.020><c> splitting</c><00:08:37.320><c> it</c><00:08:37.440><c> up</c><00:08:37.500><c> in</c><00:08:37.680><c> a</c><00:08:37.880><c> exponent</c><00:08:38.880><c> here</c><00:08:39.060><c> I</c>

00:08:39.649 --> 00:08:39.659 align:start position:0%
of splitting it up in a exponent here I
 

00:08:39.659 --> 00:08:41.630 align:start position:0%
of splitting it up in a exponent here I
think<00:08:39.779><c> at</c><00:08:39.959><c> least</c><00:08:40.140><c> but</c><00:08:40.800><c> for</c><00:08:40.979><c> now</c><00:08:41.099><c> this</c><00:08:41.399><c> is</c><00:08:41.520><c> the</c>

00:08:41.630 --> 00:08:41.640 align:start position:0%
think at least but for now this is the
 

00:08:41.640 --> 00:08:43.550 align:start position:0%
think at least but for now this is the
fastest<00:08:41.940><c> path</c><00:08:42.120><c> to</c><00:08:42.240><c> get</c><00:08:42.419><c> this</c><00:08:42.599><c> working</c><00:08:42.779><c> but</c>

00:08:43.550 --> 00:08:43.560 align:start position:0%
fastest path to get this working but
 

00:08:43.560 --> 00:08:45.949 align:start position:0%
fastest path to get this working but
yeah<00:08:43.680><c> so</c><00:08:44.099><c> far</c><00:08:44.339><c> these</c><00:08:45.000><c> user-defined</c><00:08:45.540><c> types</c><00:08:45.839><c> we</c>

00:08:45.949 --> 00:08:45.959 align:start position:0%
yeah so far these user-defined types we
 

00:08:45.959 --> 00:08:49.550 align:start position:0%
yeah so far these user-defined types we
have<00:08:46.200><c> only</c><00:08:46.620><c> are</c><00:08:47.100><c> value</c><00:08:47.820><c> types</c>

00:08:49.550 --> 00:08:49.560 align:start position:0%
have only are value types
 

00:08:49.560 --> 00:08:52.910 align:start position:0%
have only are value types
this<00:08:50.220><c> might</c><00:08:50.519><c> be</c><00:08:50.760><c> equal</c><00:08:51.540><c> cause</c><00:08:52.019><c> to</c><00:08:52.500><c> want</c><00:08:52.740><c> to</c>

00:08:52.910 --> 00:08:52.920 align:start position:0%
this might be equal cause to want to
 

00:08:52.920 --> 00:08:55.250 align:start position:0%
this might be equal cause to want to
encapsulate<00:08:53.459><c> and</c><00:08:53.640><c> Abstract</c><00:08:54.000><c> Dynamic</c><00:08:54.959><c> types</c>

00:08:55.250 --> 00:08:55.260 align:start position:0%
encapsulate and Abstract Dynamic types
 

00:08:55.260 --> 00:08:58.190 align:start position:0%
encapsulate and Abstract Dynamic types
arrays<00:08:55.800><c> structs</c><00:08:56.339><c> and</c><00:08:56.880><c> so</c><00:08:57.000><c> on</c><00:08:57.180><c> and</c><00:08:57.899><c> there's</c>

00:08:58.190 --> 00:08:58.200 align:start position:0%
arrays structs and so on and there's
 

00:08:58.200 --> 00:09:02.269 align:start position:0%
arrays structs and so on and there's
also<00:08:58.560><c> of</c><00:08:58.740><c> course</c><00:08:58.860><c> uh</c>

00:09:02.269 --> 00:09:02.279 align:start position:0%
 
 

00:09:02.279 --> 00:09:05.050 align:start position:0%
 
yeah<00:09:02.640><c> the</c><00:09:02.880><c> desire</c><00:09:03.240><c> to</c><00:09:03.480><c> have</c><00:09:03.720><c> proper</c><00:09:04.440><c> aggregate</c>

00:09:05.050 --> 00:09:05.060 align:start position:0%
yeah the desire to have proper aggregate
 

00:09:05.060 --> 00:09:07.970 align:start position:0%
yeah the desire to have proper aggregate
algebraic<00:09:06.060><c> data</c><00:09:06.420><c> types</c><00:09:06.600><c> in</c><00:09:06.779><c> general</c><00:09:06.959><c> so</c>

00:09:07.970 --> 00:09:07.980 align:start position:0%
algebraic data types in general so
 

00:09:07.980 --> 00:09:10.610 align:start position:0%
algebraic data types in general so
the<00:09:08.519><c> more</c><00:09:08.760><c> user-defined</c><00:09:09.660><c> data</c><00:09:09.959><c> types</c><00:09:10.200><c> we</c><00:09:10.440><c> have</c>

00:09:10.610 --> 00:09:10.620 align:start position:0%
the more user-defined data types we have
 

00:09:10.620 --> 00:09:14.389 align:start position:0%
the more user-defined data types we have
the<00:09:11.100><c> easier</c><00:09:12.000><c> it</c><00:09:12.120><c> is</c><00:09:12.300><c> to</c><00:09:12.660><c> uh</c><00:09:13.320><c> like</c><00:09:13.920><c> a</c><00:09:14.160><c> usable</c>

00:09:14.389 --> 00:09:14.399 align:start position:0%
the easier it is to uh like a usable
 

00:09:14.399 --> 00:09:15.590 align:start position:0%
the easier it is to uh like a usable
code

00:09:15.590 --> 00:09:15.600 align:start position:0%
code
 

00:09:15.600 --> 00:09:17.690 align:start position:0%
code
and<00:09:16.200><c> yeah</c><00:09:16.440><c> there's</c><00:09:16.740><c> questions</c><00:09:17.040><c> about</c><00:09:17.399><c> that</c>

00:09:17.690 --> 00:09:17.700 align:start position:0%
and yeah there's questions about that
 

00:09:17.700 --> 00:09:19.970 align:start position:0%
and yeah there's questions about that
for<00:09:17.880><c> example</c><00:09:18.120><c> where</c><00:09:18.839><c> data</c><00:09:19.320><c> locations</c><00:09:19.740><c> would</c>

00:09:19.970 --> 00:09:19.980 align:start position:0%
for example where data locations would
 

00:09:19.980 --> 00:09:21.650 align:start position:0%
for example where data locations would
go<00:09:20.279><c> current</c><00:09:20.519><c> if</c><00:09:20.700><c> data</c><00:09:20.940><c> locations</c><00:09:21.360><c> are</c>

00:09:21.650 --> 00:09:21.660 align:start position:0%
go current if data locations are
 

00:09:21.660 --> 00:09:23.990 align:start position:0%
go current if data locations are
associated<00:09:22.140><c> with</c><00:09:22.440><c> variables</c><00:09:23.160><c> and</c><00:09:23.399><c> not</c><00:09:23.519><c> types</c>

00:09:23.990 --> 00:09:24.000 align:start position:0%
associated with variables and not types
 

00:09:24.000 --> 00:09:25.790 align:start position:0%
associated with variables and not types
which<00:09:24.360><c> makes</c><00:09:24.540><c> that</c><00:09:24.779><c> a</c><00:09:24.899><c> hassle</c>

00:09:25.790 --> 00:09:25.800 align:start position:0%
which makes that a hassle
 

00:09:25.800 --> 00:09:29.210 align:start position:0%
which makes that a hassle
which<00:09:26.700><c> we</c><00:09:27.060><c> will</c><00:09:27.240><c> also</c><00:09:27.660><c> probably</c><00:09:28.140><c> change</c><00:09:28.620><c> for</c>

00:09:29.210 --> 00:09:29.220 align:start position:0%
which we will also probably change for
 

00:09:29.220 --> 00:09:30.710 align:start position:0%
which we will also probably change for
independent<00:09:29.700><c> reasons</c>

00:09:30.710 --> 00:09:30.720 align:start position:0%
independent reasons
 

00:09:30.720 --> 00:09:33.170 align:start position:0%
independent reasons
but<00:09:31.140><c> yeah</c><00:09:31.320><c> I</c><00:09:31.500><c> mean</c>

00:09:33.170 --> 00:09:33.180 align:start position:0%
but yeah I mean
 

00:09:33.180 --> 00:09:36.410 align:start position:0%
but yeah I mean
you<00:09:33.959><c> may</c><00:09:34.220><c> uh</c><00:09:35.220><c> see</c><00:09:35.640><c> where</c><00:09:35.820><c> I'm</c><00:09:35.940><c> going</c><00:09:36.060><c> with</c><00:09:36.300><c> this</c>

00:09:36.410 --> 00:09:36.420 align:start position:0%
you may uh see where I'm going with this
 

00:09:36.420 --> 00:09:38.509 align:start position:0%
you may uh see where I'm going with this
if<00:09:36.779><c> we</c><00:09:36.899><c> have</c><00:09:37.019><c> all</c><00:09:37.260><c> these</c><00:09:37.440><c> kinds</c><00:09:37.680><c> of</c><00:09:37.680><c> types</c><00:09:38.100><c> and</c>

00:09:38.509 --> 00:09:38.519 align:start position:0%
if we have all these kinds of types and
 

00:09:38.519 --> 00:09:40.430 align:start position:0%
if we have all these kinds of types and
maybe<00:09:38.760><c> also</c><00:09:39.360><c> user-defined</c><00:09:39.899><c> containers</c><00:09:40.260><c> and</c>

00:09:40.430 --> 00:09:40.440 align:start position:0%
maybe also user-defined containers and
 

00:09:40.440 --> 00:09:42.650 align:start position:0%
maybe also user-defined containers and
all<00:09:40.560><c> that</c><00:09:40.800><c> it</c><00:09:41.640><c> will</c><00:09:41.820><c> no</c><00:09:41.940><c> longer</c><00:09:42.180><c> be</c><00:09:42.300><c> feasible</c>

00:09:42.650 --> 00:09:42.660 align:start position:0%
all that it will no longer be feasible
 

00:09:42.660 --> 00:09:44.030 align:start position:0%
all that it will no longer be feasible
to<00:09:42.959><c> uh</c>

00:09:44.030 --> 00:09:44.040 align:start position:0%
to uh
 

00:09:44.040 --> 00:09:45.650 align:start position:0%
to uh
to<00:09:44.399><c> write</c><00:09:44.519><c> functions</c><00:09:44.940><c> to</c><00:09:45.120><c> cover</c><00:09:45.240><c> all</c><00:09:45.480><c> these</c>

00:09:45.650 --> 00:09:45.660 align:start position:0%
to write functions to cover all these
 

00:09:45.660 --> 00:09:46.970 align:start position:0%
to write functions to cover all these
types<00:09:45.899><c> and</c><00:09:46.080><c> there's</c><00:09:46.200><c> several</c><00:09:46.500><c> functions</c><00:09:46.860><c> for</c>

00:09:46.970 --> 00:09:46.980 align:start position:0%
types and there's several functions for
 

00:09:46.980 --> 00:09:49.130 align:start position:0%
types and there's several functions for
all<00:09:47.100><c> these</c><00:09:47.279><c> types</c><00:09:47.519><c> so</c><00:09:47.880><c> all</c><00:09:48.360><c> this</c>

00:09:49.130 --> 00:09:49.140 align:start position:0%
all these types so all this
 

00:09:49.140 --> 00:09:51.410 align:start position:0%
all these types so all this
increases<00:09:49.920><c> the</c><00:09:50.160><c> need</c><00:09:50.339><c> for</c><00:09:50.580><c> having</c><00:09:50.820><c> a</c>

00:09:51.410 --> 00:09:51.420 align:start position:0%
increases the need for having a
 

00:09:51.420 --> 00:09:52.730 align:start position:0%
increases the need for having a
construct<00:09:51.720><c> of</c><00:09:51.899><c> generics</c><00:09:52.320><c> in</c><00:09:52.500><c> the</c><00:09:52.620><c> language</c>

00:09:52.730 --> 00:09:52.740 align:start position:0%
construct of generics in the language
 

00:09:52.740 --> 00:09:54.710 align:start position:0%
construct of generics in the language
which<00:09:53.160><c> has</c><00:09:53.399><c> been</c><00:09:53.580><c> long</c><00:09:53.880><c> an</c><00:09:54.060><c> idea</c><00:09:54.240><c> to</c><00:09:54.420><c> introduce</c>

00:09:54.710 --> 00:09:54.720 align:start position:0%
which has been long an idea to introduce
 

00:09:54.720 --> 00:09:57.170 align:start position:0%
which has been long an idea to introduce
with<00:09:54.839><c> the</c><00:09:55.080><c> language</c><00:09:55.200><c> and</c><00:09:55.860><c> which</c><00:09:56.279><c> yeah</c><00:09:56.880><c> we're</c>

00:09:57.170 --> 00:09:57.180 align:start position:0%
with the language and which yeah we're
 

00:09:57.180 --> 00:10:01.250 align:start position:0%
with the language and which yeah we're
finally<00:09:57.540><c> now</c><00:09:57.899><c> making</c><00:09:58.320><c> moves</c><00:09:58.860><c> towards</c>

00:10:01.250 --> 00:10:01.260 align:start position:0%
finally now making moves towards
 

00:10:01.260 --> 00:10:05.329 align:start position:0%
finally now making moves towards
but<00:10:01.740><c> yeah</c><00:10:01.920><c> this</c><00:10:02.399><c> uh</c><00:10:02.820><c> if</c><00:10:03.360><c> we</c><00:10:03.480><c> have</c><00:10:03.660><c> that</c><00:10:03.959><c> uh</c>

00:10:05.329 --> 00:10:05.339 align:start position:0%
but yeah this uh if we have that uh
 

00:10:05.339 --> 00:10:07.130 align:start position:0%
but yeah this uh if we have that uh
the<00:10:05.760><c> natural</c><00:10:05.880><c> question</c><00:10:06.300><c> is</c><00:10:06.420><c> if</c><00:10:06.660><c> even</c><00:10:06.959><c> the</c>

00:10:07.130 --> 00:10:07.140 align:start position:0%
the natural question is if even the
 

00:10:07.140 --> 00:10:09.050 align:start position:0%
the natural question is if even the
built-in<00:10:07.440><c> tires</c><00:10:07.740><c> we</c><00:10:07.860><c> have</c><00:10:07.980><c> now</c><00:10:08.160><c> can</c><00:10:08.580><c> be</c><00:10:08.760><c> user</c>

00:10:09.050 --> 00:10:09.060 align:start position:0%
built-in tires we have now can be user
 

00:10:09.060 --> 00:10:10.550 align:start position:0%
built-in tires we have now can be user
defined<00:10:09.360><c> instead</c><00:10:09.720><c> which</c><00:10:09.959><c> leads</c><00:10:10.320><c> me</c><00:10:10.380><c> to</c>

00:10:10.550 --> 00:10:10.560 align:start position:0%
defined instead which leads me to
 

00:10:10.560 --> 00:10:13.250 align:start position:0%
defined instead which leads me to
another<00:10:10.860><c> topic</c><00:10:11.279><c> that</c><00:10:11.459><c> we</c><00:10:11.640><c> already</c><00:10:11.820><c> started</c>

00:10:13.250 --> 00:10:13.260 align:start position:0%
another topic that we already started
 

00:10:13.260 --> 00:10:15.470 align:start position:0%
another topic that we already started
which<00:10:13.620><c> is</c><00:10:13.680><c> a</c><00:10:13.920><c> standard</c><00:10:14.220><c> Library</c>

00:10:15.470 --> 00:10:15.480 align:start position:0%
which is a standard Library
 

00:10:15.480 --> 00:10:18.550 align:start position:0%
which is a standard Library
uh<00:10:16.260><c> the</c><00:10:16.680><c> idea</c><00:10:16.860><c> here</c><00:10:17.160><c> is</c><00:10:17.459><c> to</c><00:10:17.760><c> move</c><00:10:17.940><c> whatever</c>

00:10:18.550 --> 00:10:18.560 align:start position:0%
uh the idea here is to move whatever
 

00:10:18.560 --> 00:10:21.350 align:start position:0%
uh the idea here is to move whatever
manually<00:10:19.560><c> hard-coded</c><00:10:20.279><c> constructs</c><00:10:21.060><c> we</c><00:10:21.180><c> have</c>

00:10:21.350 --> 00:10:21.360 align:start position:0%
manually hard-coded constructs we have
 

00:10:21.360 --> 00:10:23.030 align:start position:0%
manually hard-coded constructs we have
in<00:10:21.540><c> the</c><00:10:21.600><c> compiler</c><00:10:21.959><c> now</c><00:10:22.080><c> or</c><00:10:22.260><c> as</c><00:10:22.500><c> many</c><00:10:22.740><c> of</c><00:10:22.920><c> them</c>

00:10:23.030 --> 00:10:23.040 align:start position:0%
in the compiler now or as many of them
 

00:10:23.040 --> 00:10:25.610 align:start position:0%
in the compiler now or as many of them
as<00:10:23.220><c> possible</c><00:10:23.640><c> to</c><00:10:24.300><c> actual</c><00:10:24.720><c> implementations</c><00:10:25.320><c> in</c>

00:10:25.610 --> 00:10:25.620 align:start position:0%
as possible to actual implementations in
 

00:10:25.620 --> 00:10:28.430 align:start position:0%
as possible to actual implementations in
validity<00:10:26.160><c> written</c><00:10:26.940><c> user</c><00:10:27.300><c> code</c><00:10:27.480><c> and</c><00:10:28.140><c> then</c><00:10:28.260><c> to</c>

00:10:28.430 --> 00:10:28.440 align:start position:0%
validity written user code and then to
 

00:10:28.440 --> 00:10:31.430 align:start position:0%
validity written user code and then to
ship<00:10:28.740><c> that</c><00:10:29.279><c> as</c><00:10:29.580><c> an</c><00:10:30.300><c> standard</c><00:10:30.959><c> Library</c><00:10:31.140><c> that's</c>

00:10:31.430 --> 00:10:31.440 align:start position:0%
ship that as an standard Library that's
 

00:10:31.440 --> 00:10:33.410 align:start position:0%
ship that as an standard Library that's
integrated<00:10:31.860><c> into</c><00:10:32.100><c> the</c><00:10:32.279><c> compiler</c>

00:10:33.410 --> 00:10:33.420 align:start position:0%
integrated into the compiler
 

00:10:33.420 --> 00:10:35.449 align:start position:0%
integrated into the compiler
so<00:10:34.080><c> yeah</c><00:10:34.320><c> this</c><00:10:34.560><c> is</c><00:10:34.620><c> what</c><00:10:34.800><c> this</c><00:10:34.920><c> is</c><00:10:35.100><c> in</c><00:10:35.339><c> the</c>

00:10:35.449 --> 00:10:35.459 align:start position:0%
so yeah this is what this is in the
 

00:10:35.459 --> 00:10:37.850 align:start position:0%
so yeah this is what this is in the
first<00:10:35.580><c> instance</c><00:10:35.880><c> going</c><00:10:36.240><c> to</c><00:10:36.360><c> look</c><00:10:36.540><c> like</c><00:10:36.860><c> that</c>

00:10:37.850 --> 00:10:37.860 align:start position:0%
first instance going to look like that
 

00:10:37.860 --> 00:10:39.829 align:start position:0%
first instance going to look like that
you<00:10:38.100><c> can</c><00:10:38.220><c> enable</c>

00:10:39.829 --> 00:10:39.839 align:start position:0%
you can enable
 

00:10:39.839 --> 00:10:41.630 align:start position:0%
you can enable
the<00:10:40.260><c> standard</c><00:10:40.560><c> Library</c><00:10:40.740><c> version</c><00:10:41.220><c> of</c><00:10:41.519><c> the</c>

00:10:41.630 --> 00:10:41.640 align:start position:0%
the standard Library version of the
 

00:10:41.640 --> 00:10:43.370 align:start position:0%
the standard Library version of the
compiler<00:10:42.060><c> which</c><00:10:42.420><c> in</c><00:10:42.720><c> the</c><00:10:42.839><c> end</c><00:10:42.959><c> we</c><00:10:43.140><c> will</c><00:10:43.260><c> move</c>

00:10:43.370 --> 00:10:43.380 align:start position:0%
compiler which in the end we will move
 

00:10:43.380 --> 00:10:46.850 align:start position:0%
compiler which in the end we will move
towards<00:10:43.800><c> and</c><00:10:44.640><c> then</c><00:10:44.880><c> import</c><00:10:45.240><c> uh</c>

00:10:46.850 --> 00:10:46.860 align:start position:0%
towards and then import uh
 

00:10:46.860 --> 00:10:48.530 align:start position:0%
towards and then import uh
built-in<00:10:47.399><c> constructs</c><00:10:47.820><c> from</c><00:10:48.060><c> the</c><00:10:48.240><c> standard</c>

00:10:48.530 --> 00:10:48.540 align:start position:0%
built-in constructs from the standard
 

00:10:48.540 --> 00:10:50.389 align:start position:0%
built-in constructs from the standard
library<00:10:48.720><c> and</c><00:10:49.500><c> it</c><00:10:49.620><c> will</c><00:10:49.740><c> be</c><00:10:49.860><c> possible</c><00:10:50.160><c> to</c>

00:10:50.389 --> 00:10:50.399 align:start position:0%
library and it will be possible to
 

00:10:50.399 --> 00:10:53.090 align:start position:0%
library and it will be possible to
export<00:10:50.820><c> the</c><00:10:51.300><c> standard</c><00:10:51.600><c> Library</c><00:10:51.779><c> as</c><00:10:52.500><c> a</c><00:10:52.800><c> set</c><00:10:52.920><c> of</c>

00:10:53.090 --> 00:10:53.100 align:start position:0%
export the standard Library as a set of
 

00:10:53.100 --> 00:10:55.370 align:start position:0%
export the standard Library as a set of
files<00:10:53.519><c> out</c><00:10:54.000><c> of</c><00:10:54.120><c> the</c><00:10:54.240><c> compiler</c><00:10:54.720><c> and</c><00:10:55.079><c> there</c><00:10:55.260><c> you</c>

00:10:55.370 --> 00:10:55.380 align:start position:0%
files out of the compiler and there you
 

00:10:55.380 --> 00:10:56.690 align:start position:0%
files out of the compiler and there you
can<00:10:55.500><c> then</c><00:10:55.560><c> inspect</c><00:10:55.980><c> what</c><00:10:56.220><c> this</c><00:10:56.459><c> function</c>

00:10:56.690 --> 00:10:56.700 align:start position:0%
can then inspect what this function
 

00:10:56.700 --> 00:10:58.910 align:start position:0%
can then inspect what this function
actually<00:10:57.000><c> does</c><00:10:57.300><c> for</c><00:10:58.019><c> example</c><00:10:58.260><c> add</c><00:10:58.500><c> mode</c><00:10:58.680><c> is</c><00:10:58.800><c> a</c>

00:10:58.910 --> 00:10:58.920 align:start position:0%
actually does for example add mode is a
 

00:10:58.920 --> 00:11:00.769 align:start position:0%
actually does for example add mode is a
simple<00:10:59.040><c> example</c><00:10:59.459><c> which</c><00:10:59.760><c> can</c><00:11:00.000><c> then</c><00:11:00.300><c> actually</c>

00:11:00.769 --> 00:11:00.779 align:start position:0%
simple example which can then actually
 

00:11:00.779 --> 00:11:03.650 align:start position:0%
simple example which can then actually
be<00:11:00.959><c> implemented</c><00:11:01.440><c> in</c><00:11:01.880><c> inline</c><00:11:02.880><c> assembly</c><00:11:03.360><c> with</c>

00:11:03.650 --> 00:11:03.660 align:start position:0%
be implemented in inline assembly with
 

00:11:03.660 --> 00:11:05.210 align:start position:0%
be implemented in inline assembly with
additional<00:11:04.140><c> checks</c>

00:11:05.210 --> 00:11:05.220 align:start position:0%
additional checks
 

00:11:05.220 --> 00:11:07.730 align:start position:0%
additional checks
that<00:11:06.000><c> works</c>

00:11:07.730 --> 00:11:07.740 align:start position:0%
that works
 

00:11:07.740 --> 00:11:09.590 align:start position:0%
that works
to<00:11:08.279><c> reduce</c><00:11:08.399><c> the</c><00:11:08.640><c> footprint</c><00:11:08.940><c> of</c><00:11:09.120><c> the</c><00:11:09.240><c> compiler</c>

00:11:09.590 --> 00:11:09.600 align:start position:0%
to reduce the footprint of the compiler
 

00:11:09.600 --> 00:11:11.750 align:start position:0%
to reduce the footprint of the compiler
and<00:11:09.899><c> to</c><00:11:10.079><c> yeah</c><00:11:10.560><c> make</c><00:11:10.800><c> it</c><00:11:10.980><c> easier</c><00:11:11.160><c> for</c><00:11:11.399><c> people</c><00:11:11.579><c> to</c>

00:11:11.750 --> 00:11:11.760 align:start position:0%
and to yeah make it easier for people to
 

00:11:11.760 --> 00:11:14.150 align:start position:0%
and to yeah make it easier for people to
inspect<00:11:12.120><c> what's</c><00:11:12.660><c> actually</c><00:11:12.899><c> happened</c><00:11:13.200><c> and</c><00:11:13.860><c> to</c>

00:11:14.150 --> 00:11:14.160 align:start position:0%
inspect what's actually happened and to
 

00:11:14.160 --> 00:11:16.610 align:start position:0%
inspect what's actually happened and to
extend<00:11:14.820><c> it</c><00:11:15.000><c> even</c>

00:11:16.610 --> 00:11:16.620 align:start position:0%
extend it even
 

00:11:16.620 --> 00:11:20.090 align:start position:0%
extend it even
but<00:11:17.279><c> the</c><00:11:17.940><c> problem</c><00:11:18.120><c> there</c><00:11:18.420><c> again</c><00:11:18.660><c> is</c><00:11:19.200><c> this</c><00:11:19.920><c> is</c>

00:11:20.090 --> 00:11:20.100 align:start position:0%
but the problem there again is this is
 

00:11:20.100 --> 00:11:22.190 align:start position:0%
but the problem there again is this is
of<00:11:20.459><c> course</c><00:11:20.579><c> Very</c><00:11:20.880><c> restricted</c><00:11:21.480><c> in</c><00:11:21.720><c> the</c><00:11:22.019><c> scope</c>

00:11:22.190 --> 00:11:22.200 align:start position:0%
of course Very restricted in the scope
 

00:11:22.200 --> 00:11:23.990 align:start position:0%
of course Very restricted in the scope
in<00:11:22.440><c> which</c><00:11:22.680><c> we</c><00:11:22.860><c> what</c><00:11:23.220><c> we</c><00:11:23.459><c> couldn't</c><00:11:23.579><c> move</c><00:11:23.820><c> into</c>

00:11:23.990 --> 00:11:24.000 align:start position:0%
in which we what we couldn't move into
 

00:11:24.000 --> 00:11:26.150 align:start position:0%
in which we what we couldn't move into
the<00:11:24.240><c> standard</c><00:11:24.540><c> Library</c><00:11:24.660><c> as</c><00:11:25.019><c> long</c><00:11:25.200><c> as</c><00:11:25.500><c> our</c>

00:11:26.150 --> 00:11:26.160 align:start position:0%
the standard Library as long as our
 

00:11:26.160 --> 00:11:28.009 align:start position:0%
the standard Library as long as our
functions<00:11:26.700><c> facility</c><00:11:26.940><c> of</c><00:11:27.240><c> monomorphic</c><00:11:27.720><c> and</c><00:11:27.899><c> so</c>

00:11:28.009 --> 00:11:28.019 align:start position:0%
functions facility of monomorphic and so
 

00:11:28.019 --> 00:11:29.449 align:start position:0%
functions facility of monomorphic and so
means<00:11:28.200><c> we</c><00:11:28.320><c> don't</c><00:11:28.500><c> have</c><00:11:28.620><c> generic</c><00:11:29.100><c> functions</c>

00:11:29.449 --> 00:11:29.459 align:start position:0%
means we don't have generic functions
 

00:11:29.459 --> 00:11:31.910 align:start position:0%
means we don't have generic functions
that<00:11:29.760><c> can</c><00:11:29.940><c> handle</c><00:11:30.540><c> multiple</c><00:11:30.839><c> types</c>

00:11:31.910 --> 00:11:31.920 align:start position:0%
that can handle multiple types
 

00:11:31.920 --> 00:11:33.710 align:start position:0%
that can handle multiple types
so<00:11:32.399><c> the</c><00:11:32.519><c> full</c><00:11:32.700><c> potential</c><00:11:33.060><c> of</c><00:11:33.240><c> the</c><00:11:33.300><c> standard</c>

00:11:33.710 --> 00:11:33.720 align:start position:0%
so the full potential of the standard
 

00:11:33.720 --> 00:11:35.090 align:start position:0%
so the full potential of the standard
Library<00:11:33.839><c> will</c><00:11:34.140><c> only</c><00:11:34.260><c> be</c><00:11:34.440><c> Unleashed</c><00:11:34.860><c> if</c><00:11:34.980><c> we</c>

00:11:35.090 --> 00:11:35.100 align:start position:0%
Library will only be Unleashed if we
 

00:11:35.100 --> 00:11:36.530 align:start position:0%
Library will only be Unleashed if we
have<00:11:35.220><c> generics</c>

00:11:36.530 --> 00:11:36.540 align:start position:0%
have generics
 

00:11:36.540 --> 00:11:37.970 align:start position:0%
have generics
uh

00:11:37.970 --> 00:11:37.980 align:start position:0%
uh
 

00:11:37.980 --> 00:11:40.250 align:start position:0%
uh
yeah<00:11:38.459><c> and</c><00:11:38.760><c> the</c><00:11:39.060><c> question</c><00:11:39.180><c> is</c><00:11:39.420><c> also</c><00:11:39.720><c> whether</c><00:11:40.019><c> we</c>

00:11:40.250 --> 00:11:40.260 align:start position:0%
yeah and the question is also whether we
 

00:11:40.260 --> 00:11:42.290 align:start position:0%
yeah and the question is also whether we
can<00:11:40.440><c> not</c><00:11:40.680><c> only</c><00:11:40.800><c> move</c><00:11:41.220><c> built-in</c><00:11:41.640><c> functions</c><00:11:42.120><c> but</c>

00:11:42.290 --> 00:11:42.300 align:start position:0%
can not only move built-in functions but
 

00:11:42.300 --> 00:11:44.329 align:start position:0%
can not only move built-in functions but
also<00:11:42.540><c> built-in</c><00:11:42.899><c> types</c><00:11:43.320><c> which</c><00:11:43.860><c> would</c><00:11:43.980><c> end</c><00:11:44.100><c> then</c>

00:11:44.329 --> 00:11:44.339 align:start position:0%
also built-in types which would end then
 

00:11:44.339 --> 00:11:46.490 align:start position:0%
also built-in types which would end then
as<00:11:44.640><c> we</c><00:11:45.060><c> had</c><00:11:45.240><c> earlier</c><00:11:45.480><c> as</c><00:11:45.600><c> user</c><00:11:45.959><c> defined</c><00:11:46.260><c> types</c>

00:11:46.490 --> 00:11:46.500 align:start position:0%
as we had earlier as user defined types
 

00:11:46.500 --> 00:11:48.410 align:start position:0%
as we had earlier as user defined types
in<00:11:46.680><c> the</c><00:11:46.800><c> standard</c><00:11:47.100><c> Library</c>

00:11:48.410 --> 00:11:48.420 align:start position:0%
in the standard Library
 

00:11:48.420 --> 00:11:50.090 align:start position:0%
in the standard Library
so<00:11:48.720><c> the</c><00:11:48.839><c> end</c><00:11:48.959><c> go</c><00:11:49.200><c> over</c><00:11:49.320><c> the</c><00:11:49.560><c> standard</c><00:11:49.860><c> library</c>

00:11:50.090 --> 00:11:50.100 align:start position:0%
so the end go over the standard library
 

00:11:50.100 --> 00:11:52.670 align:start position:0%
so the end go over the standard library
is<00:11:50.700><c> reduce</c><00:11:51.000><c> the</c><00:11:51.300><c> language</c><00:11:51.540><c> to</c><00:11:52.140><c> a</c><00:11:52.380><c> small</c><00:11:52.500><c> simple</c>

00:11:52.670 --> 00:11:52.680 align:start position:0%
is reduce the language to a small simple
 

00:11:52.680 --> 00:11:54.829 align:start position:0%
is reduce the language to a small simple
core<00:11:53.040><c> language</c><00:11:53.339><c> and</c><00:11:54.060><c> have</c><00:11:54.240><c> most</c><00:11:54.540><c> of</c><00:11:54.720><c> the</c>

00:11:54.829 --> 00:11:54.839 align:start position:0%
core language and have most of the
 

00:11:54.839 --> 00:11:56.509 align:start position:0%
core language and have most of the
current<00:11:55.019><c> features</c><00:11:55.800><c> that</c><00:11:55.980><c> we</c><00:11:56.100><c> have</c><00:11:56.220><c> in</c><00:11:56.339><c> the</c>

00:11:56.509 --> 00:11:56.519 align:start position:0%
current features that we have in the
 

00:11:56.519 --> 00:11:59.150 align:start position:0%
current features that we have in the
language<00:11:56.779><c> defined</c><00:11:57.779><c> in</c><00:11:58.200><c> a</c><00:11:58.440><c> standard</c><00:11:58.980><c> library</c>

00:11:59.150 --> 00:11:59.160 align:start position:0%
language defined in a standard library
 

00:11:59.160 --> 00:12:01.730 align:start position:0%
language defined in a standard library
that<00:11:59.880><c> is</c><00:12:00.060><c> written</c><00:12:00.300><c> in</c><00:12:00.420><c> solidity</c><00:12:00.899><c> can</c><00:12:01.500><c> be</c>

00:12:01.730 --> 00:12:01.740 align:start position:0%
that is written in solidity can be
 

00:12:01.740 --> 00:12:04.009 align:start position:0%
that is written in solidity can be
quickly<00:12:02.100><c> iterated</c><00:12:02.519><c> on</c><00:12:02.760><c> can</c><00:12:03.300><c> be</c><00:12:03.480><c> extended</c><00:12:03.839><c> by</c>

00:12:04.009 --> 00:12:04.019 align:start position:0%
quickly iterated on can be extended by
 

00:12:04.019 --> 00:12:06.650 align:start position:0%
quickly iterated on can be extended by
the<00:12:04.140><c> community</c><00:12:04.320><c> and</c><00:12:04.860><c> can</c><00:12:04.980><c> be</c><00:12:05.160><c> audited</c><00:12:06.000><c> and</c><00:12:06.540><c> so</c>

00:12:06.650 --> 00:12:06.660 align:start position:0%
the community and can be audited and so
 

00:12:06.660 --> 00:12:08.569 align:start position:0%
the community and can be audited and so
on<00:12:06.779><c> and</c><00:12:06.959><c> so</c><00:12:07.140><c> forth</c>

00:12:08.569 --> 00:12:08.579 align:start position:0%
on and so forth
 

00:12:08.579 --> 00:12:13.550 align:start position:0%
on and so forth
but<00:12:09.500><c> to</c><00:12:10.500><c> get</c><00:12:10.740><c> to</c><00:12:10.980><c> that</c><00:12:11.160><c> point</c><00:12:11.339><c> in</c><00:12:12.300><c> full</c><00:12:12.959><c> we</c><00:12:13.320><c> need</c>

00:12:13.550 --> 00:12:13.560 align:start position:0%
but to get to that point in full we need
 

00:12:13.560 --> 00:12:14.990 align:start position:0%
but to get to that point in full we need
generics

00:12:14.990 --> 00:12:15.000 align:start position:0%
generics
 

00:12:15.000 --> 00:12:18.949 align:start position:0%
generics
so<00:12:15.420><c> the</c><00:12:15.540><c> idea</c><00:12:15.839><c> is</c><00:12:16.140><c> to</c><00:12:16.740><c> yeah</c><00:12:17.040><c> get</c><00:12:17.480><c> inspired</c><00:12:18.480><c> by</c><00:12:18.839><c> a</c>

00:12:18.949 --> 00:12:18.959 align:start position:0%
so the idea is to yeah get inspired by a
 

00:12:18.959 --> 00:12:21.769 align:start position:0%
so the idea is to yeah get inspired by a
nice<00:12:19.500><c> system</c><00:12:19.740><c> of</c><00:12:19.980><c> generics</c><00:12:20.339><c> which</c><00:12:20.640><c> is</c><00:12:21.060><c> based</c>

00:12:21.769 --> 00:12:21.779 align:start position:0%
nice system of generics which is based
 

00:12:21.779 --> 00:12:23.690 align:start position:0%
nice system of generics which is based
on<00:12:21.839><c> a</c><00:12:22.019><c> logically</c><00:12:22.320><c> grounded</c><00:12:22.740><c> type</c><00:12:22.860><c> system</c><00:12:23.160><c> we</c>

00:12:23.690 --> 00:12:23.700 align:start position:0%
on a logically grounded type system we
 

00:12:23.700 --> 00:12:25.370 align:start position:0%
on a logically grounded type system we
have<00:12:23.880><c> products</c><00:12:24.300><c> I</c><00:12:24.420><c> have</c><00:12:24.540><c> some</c><00:12:24.779><c> types</c><00:12:25.079><c> function</c>

00:12:25.370 --> 00:12:25.380 align:start position:0%
have products I have some types function
 

00:12:25.380 --> 00:12:27.829 align:start position:0%
have products I have some types function
types<00:12:25.740><c> which</c><00:12:26.700><c> if</c><00:12:27.000><c> you're</c><00:12:27.120><c> a</c><00:12:27.240><c> mathematician</c><00:12:27.720><c> or</c>

00:12:27.829 --> 00:12:27.839 align:start position:0%
types which if you're a mathematician or
 

00:12:27.839 --> 00:12:29.870 align:start position:0%
types which if you're a mathematician or
category<00:12:28.140><c> theorist</c><00:12:28.620><c> the</c><00:12:29.160><c> type</c><00:12:29.339><c> system</c><00:12:29.640><c> will</c>

00:12:29.870 --> 00:12:29.880 align:start position:0%
category theorist the type system will
 

00:12:29.880 --> 00:12:31.250 align:start position:0%
category theorist the type system will
probably<00:12:30.060><c> form</c><00:12:30.300><c> a</c><00:12:30.480><c> partition</c><00:12:30.779><c> closed</c>

00:12:31.250 --> 00:12:31.260 align:start position:0%
probably form a partition closed
 

00:12:31.260 --> 00:12:34.130 align:start position:0%
probably form a partition closed
category<00:12:31.620><c> which</c><00:12:32.519><c> is</c><00:12:32.820><c> how</c><00:12:33.240><c> these</c><00:12:33.600><c> things</c><00:12:33.720><c> work</c>

00:12:34.130 --> 00:12:34.140 align:start position:0%
category which is how these things work
 

00:12:34.140 --> 00:12:36.170 align:start position:0%
category which is how these things work
usually<00:12:34.560><c> in</c><00:12:35.040><c> properly</c><00:12:35.519><c> designed</c><00:12:35.820><c> to</c><00:12:35.940><c> know</c>

00:12:36.170 --> 00:12:36.180 align:start position:0%
usually in properly designed to know
 

00:12:36.180 --> 00:12:38.449 align:start position:0%
usually in properly designed to know
languages<00:12:36.540><c> like</c><00:12:36.959><c> Haskell</c><00:12:37.560><c> or</c><00:12:37.800><c> like</c><00:12:38.100><c> the</c><00:12:38.279><c> trade</c>

00:12:38.449 --> 00:12:38.459 align:start position:0%
languages like Haskell or like the trade
 

00:12:38.459 --> 00:12:40.370 align:start position:0%
languages like Haskell or like the trade
system<00:12:38.640><c> in</c><00:12:38.940><c> rust</c><00:12:39.180><c> or</c><00:12:39.720><c> the</c><00:12:39.899><c> general</c><00:12:40.019><c> system</c>

00:12:40.370 --> 00:12:40.380 align:start position:0%
system in rust or the general system
 

00:12:40.380 --> 00:12:43.129 align:start position:0%
system in rust or the general system
rust<00:12:41.339><c> uh</c><00:12:42.180><c> and</c><00:12:42.420><c> yeah</c><00:12:42.480><c> we</c><00:12:42.720><c> will</c><00:12:42.899><c> have</c>

00:12:43.129 --> 00:12:43.139 align:start position:0%
rust uh and yeah we will have
 

00:12:43.139 --> 00:12:44.870 align:start position:0%
rust uh and yeah we will have
polymorphic<00:12:43.860><c> functions</c><00:12:44.160><c> that</c><00:12:44.279><c> can</c><00:12:44.399><c> take</c>

00:12:44.870 --> 00:12:44.880 align:start position:0%
polymorphic functions that can take
 

00:12:44.880 --> 00:12:47.329 align:start position:0%
polymorphic functions that can take
arbitrary<00:12:45.300><c> types</c><00:12:45.720><c> and</c><00:12:46.139><c> yeah</c><00:12:46.740><c> ad</c><00:12:47.160><c> hoc</c>

00:12:47.329 --> 00:12:47.339 align:start position:0%
arbitrary types and yeah ad hoc
 

00:12:47.339 --> 00:12:49.129 align:start position:0%
arbitrary types and yeah ad hoc
polymorphism<00:12:47.880><c> using</c><00:12:48.240><c> type</c><00:12:48.420><c> glasses</c><00:12:48.959><c> or</c>

00:12:49.129 --> 00:12:49.139 align:start position:0%
polymorphism using type glasses or
 

00:12:49.139 --> 00:12:51.230 align:start position:0%
polymorphism using type glasses or
that's<00:12:49.620><c> in</c><00:12:49.980><c> Rust</c><00:12:50.279><c> maybe</c><00:12:50.459><c> if</c><00:12:50.760><c> people</c><00:12:50.940><c> are</c><00:12:51.180><c> more</c>

00:12:51.230 --> 00:12:51.240 align:start position:0%
that's in Rust maybe if people are more
 

00:12:51.240 --> 00:12:54.110 align:start position:0%
that's in Rust maybe if people are more
familiar<00:12:51.540><c> with</c><00:12:51.660><c> that</c><00:12:51.899><c> great</c>

00:12:54.110 --> 00:12:54.120 align:start position:0%
familiar with that great
 

00:12:54.120 --> 00:12:55.910 align:start position:0%
familiar with that great
and<00:12:54.540><c> yeah</c><00:12:54.660><c> we</c><00:12:54.839><c> will</c><00:12:54.959><c> also</c><00:12:55.200><c> for</c><00:12:55.380><c> this</c><00:12:55.620><c> to</c><00:12:55.800><c> work</c>

00:12:55.910 --> 00:12:55.920 align:start position:0%
and yeah we will also for this to work
 

00:12:55.920 --> 00:12:58.910 align:start position:0%
and yeah we will also for this to work
out<00:12:56.160><c> you</c><00:12:56.700><c> kind</c><00:12:57.000><c> of</c><00:12:57.120><c> need</c><00:12:57.300><c> to</c><00:12:57.480><c> go</c><00:12:57.660><c> all</c><00:12:58.139><c> in</c><00:12:58.680><c> on</c><00:12:58.860><c> it</c>

00:12:58.910 --> 00:12:58.920 align:start position:0%
out you kind of need to go all in on it
 

00:12:58.920 --> 00:13:02.269 align:start position:0%
out you kind of need to go all in on it
and<00:12:59.100><c> or</c><00:12:59.519><c> go</c><00:13:00.000><c> for</c><00:13:00.180><c> the</c><00:13:00.300><c> code</c><00:13:01.019><c> the</c><00:13:01.200><c> whole</c><00:13:01.560><c> way</c><00:13:01.680><c> so</c>

00:13:02.269 --> 00:13:02.279 align:start position:0%
and or go for the code the whole way so
 

00:13:02.279 --> 00:13:04.790 align:start position:0%
and or go for the code the whole way so
we<00:13:02.519><c> will</c><00:13:02.639><c> also</c><00:13:02.820><c> have</c><00:13:03.260><c> algebraic</c><00:13:04.260><c> data</c><00:13:04.560><c> types</c>

00:13:04.790 --> 00:13:04.800 align:start position:0%
we will also have algebraic data types
 

00:13:04.800 --> 00:13:07.670 align:start position:0%
we will also have algebraic data types
and<00:13:05.579><c> yeah</c><00:13:06.300><c> all</c><00:13:06.540><c> of</c><00:13:06.660><c> this</c><00:13:06.779><c> will</c><00:13:06.959><c> also</c><00:13:07.260><c> be</c><00:13:07.380><c> only</c>

00:13:07.670 --> 00:13:07.680 align:start position:0%
and yeah all of this will also be only
 

00:13:07.680 --> 00:13:10.069 align:start position:0%
and yeah all of this will also be only
really<00:13:08.160><c> useful</c><00:13:08.519><c> if</c><00:13:08.940><c> you</c><00:13:09.060><c> have</c><00:13:09.240><c> compile</c><00:13:09.899><c> time</c>

00:13:10.069 --> 00:13:10.079 align:start position:0%
really useful if you have compile time
 

00:13:10.079 --> 00:13:11.569 align:start position:0%
really useful if you have compile time
constant<00:13:10.380><c> expression</c><00:13:10.800><c> evaluation</c><00:13:11.279><c> because</c>

00:13:11.569 --> 00:13:11.579 align:start position:0%
constant expression evaluation because
 

00:13:11.579 --> 00:13:15.110 align:start position:0%
constant expression evaluation because
you<00:13:11.880><c> will</c><00:13:12.120><c> in</c><00:13:12.779><c> generic</c><00:13:13.320><c> functions</c><00:13:14.040><c> have</c><00:13:14.459><c> yeah</c>

00:13:15.110 --> 00:13:15.120 align:start position:0%
you will in generic functions have yeah
 

00:13:15.120 --> 00:13:17.210 align:start position:0%
you will in generic functions have yeah
constructed<00:13:15.839><c> parameters</c><00:13:16.320><c> that</c><00:13:16.620><c> should</c><00:13:17.040><c> be</c>

00:13:17.210 --> 00:13:17.220 align:start position:0%
constructed parameters that should be
 

00:13:17.220 --> 00:13:21.110 align:start position:0%
constructed parameters that should be
evaluated<00:13:17.820><c> at</c><00:13:17.940><c> compile</c><00:13:18.240><c> time</c><00:13:18.500><c> so</c><00:13:19.500><c> yeah</c><00:13:20.459><c> that's</c>

00:13:21.110 --> 00:13:21.120 align:start position:0%
evaluated at compile time so yeah that's
 

00:13:21.120 --> 00:13:22.850 align:start position:0%
evaluated at compile time so yeah that's
also<00:13:21.600><c> something</c>

00:13:22.850 --> 00:13:22.860 align:start position:0%
also something
 

00:13:22.860 --> 00:13:25.550 align:start position:0%
also something
we<00:13:23.339><c> will</c><00:13:23.519><c> have</c><00:13:23.760><c> which</c><00:13:24.120><c> is</c><00:13:24.480><c> as</c><00:13:25.019><c> I</c><00:13:25.200><c> said</c><00:13:25.320><c> earlier</c>

00:13:25.550 --> 00:13:25.560 align:start position:0%
we will have which is as I said earlier
 

00:13:25.560 --> 00:13:27.110 align:start position:0%
we will have which is as I said earlier
for<00:13:25.740><c> the</c><00:13:25.860><c> code</c><00:13:25.980><c> data</c><00:13:26.339><c> location</c><00:13:26.459><c> we</c><00:13:26.820><c> will</c><00:13:26.940><c> need</c>

00:13:27.110 --> 00:13:27.120 align:start position:0%
for the code data location we will need
 

00:13:27.120 --> 00:13:28.490 align:start position:0%
for the code data location we will need
to<00:13:27.180><c> refactor</c><00:13:27.600><c> the</c><00:13:27.720><c> type</c><00:13:27.839><c> Checker</c><00:13:28.200><c> to</c><00:13:28.320><c> have</c>

00:13:28.490 --> 00:13:28.500 align:start position:0%
to refactor the type Checker to have
 

00:13:28.500 --> 00:13:30.710 align:start position:0%
to refactor the type Checker to have
VMware<00:13:29.399><c> flexible</c><00:13:29.760><c> for</c><00:13:30.060><c> this</c><00:13:30.120><c> we</c><00:13:30.300><c> will</c><00:13:30.480><c> need</c>

00:13:30.710 --> 00:13:30.720 align:start position:0%
VMware flexible for this we will need
 

00:13:30.720 --> 00:13:33.350 align:start position:0%
VMware flexible for this we will need
that<00:13:30.959><c> as</c><00:13:31.139><c> well</c>

00:13:33.350 --> 00:13:33.360 align:start position:0%
 
 

00:13:33.360 --> 00:13:35.629 align:start position:0%
 
and<00:13:33.839><c> yeah</c><00:13:34.019><c> maybe</c><00:13:34.380><c> we</c><00:13:34.740><c> will</c><00:13:34.920><c> also</c><00:13:35.160><c> have</c><00:13:35.279><c> linear</c>

00:13:35.629 --> 00:13:35.639 align:start position:0%
and yeah maybe we will also have linear
 

00:13:35.639 --> 00:13:38.690 align:start position:0%
and yeah maybe we will also have linear
types<00:13:36.060><c> which</c><00:13:36.600><c> is</c><00:13:37.019><c> how</c><00:13:37.620><c> rust's</c><00:13:38.100><c> follow</c><00:13:38.279><c> Checker</c>

00:13:38.690 --> 00:13:38.700 align:start position:0%
types which is how rust's follow Checker
 

00:13:38.700 --> 00:13:40.430 align:start position:0%
types which is how rust's follow Checker
is<00:13:38.820><c> constructed</c>

00:13:40.430 --> 00:13:40.440 align:start position:0%
is constructed
 

00:13:40.440 --> 00:13:42.949 align:start position:0%
is constructed
but<00:13:40.860><c> yeah</c><00:13:40.980><c> I</c><00:13:41.519><c> will</c><00:13:41.700><c> now</c><00:13:41.880><c> have</c><00:13:42.300><c> some</c><00:13:42.480><c> examples</c>

00:13:42.949 --> 00:13:42.959 align:start position:0%
but yeah I will now have some examples
 

00:13:42.959 --> 00:13:45.530 align:start position:0%
but yeah I will now have some examples
with<00:13:43.620><c> some</c><00:13:43.980><c> made</c><00:13:44.220><c> up</c><00:13:44.399><c> syntax</c><00:13:44.880><c> and</c><00:13:45.180><c> some</c><00:13:45.360><c> made</c>

00:13:45.530 --> 00:13:45.540 align:start position:0%
with some made up syntax and some made
 

00:13:45.540 --> 00:13:47.690 align:start position:0%
with some made up syntax and some made
up<00:13:45.779><c> constructs</c><00:13:46.200><c> but</c><00:13:46.440><c> I'm</c><00:13:46.980><c> going</c><00:13:47.160><c> to</c><00:13:47.339><c> say</c><00:13:47.459><c> this</c>

00:13:47.690 --> 00:13:47.700 align:start position:0%
up constructs but I'm going to say this
 

00:13:47.700 --> 00:13:49.790 align:start position:0%
up constructs but I'm going to say this
is<00:13:47.820><c> all</c><00:13:48.120><c> early</c><00:13:48.540><c> research</c><00:13:49.019><c> stage</c><00:13:49.260><c> so</c><00:13:49.440><c> we</c><00:13:49.680><c> have</c>

00:13:49.790 --> 00:13:49.800 align:start position:0%
is all early research stage so we have
 

00:13:49.800 --> 00:13:51.650 align:start position:0%
is all early research stage so we have
nothing<00:13:50.040><c> fixed</c><00:13:50.519><c> here</c><00:13:50.639><c> yet</c><00:13:50.880><c> I'm</c><00:13:51.180><c> just</c><00:13:51.360><c> telling</c>

00:13:51.650 --> 00:13:51.660 align:start position:0%
nothing fixed here yet I'm just telling
 

00:13:51.660 --> 00:13:53.389 align:start position:0%
nothing fixed here yet I'm just telling
you<00:13:51.779><c> where</c><00:13:52.260><c> we</c><00:13:52.500><c> headed</c><00:13:52.800><c> and</c><00:13:52.860><c> what</c><00:13:53.040><c> we'd</c><00:13:53.279><c> want</c>

00:13:53.389 --> 00:13:53.399 align:start position:0%
you where we headed and what we'd want
 

00:13:53.399 --> 00:13:54.769 align:start position:0%
you where we headed and what we'd want
to<00:13:53.579><c> do</c><00:13:53.700><c> in</c><00:13:54.060><c> the</c>

00:13:54.769 --> 00:13:54.779 align:start position:0%
to do in the
 

00:13:54.779 --> 00:13:55.970 align:start position:0%
to do in the
next

00:13:55.970 --> 00:13:55.980 align:start position:0%
next
 

00:13:55.980 --> 00:13:58.550 align:start position:0%
next
however<00:13:56.519><c> long</c><00:13:56.700><c> it</c><00:13:56.880><c> will</c><00:13:57.060><c> take</c>

00:13:58.550 --> 00:13:58.560 align:start position:0%
however long it will take
 

00:13:58.560 --> 00:14:00.949 align:start position:0%
however long it will take
so<00:13:58.980><c> yeah</c><00:13:59.040><c> the</c><00:13:59.339><c> go-to</c><00:13:59.639><c> down</c><00:14:00.180><c> to</c><00:14:00.360><c> earth</c><00:14:00.540><c> example</c>

00:14:00.949 --> 00:14:00.959 align:start position:0%
so yeah the go-to down to earth example
 

00:14:00.959 --> 00:14:03.050 align:start position:0%
so yeah the go-to down to earth example
of<00:14:01.139><c> a</c><00:14:01.380><c> use</c><00:14:01.500><c> of</c><00:14:01.740><c> generics</c><00:14:02.100><c> is</c><00:14:02.279><c> something</c><00:14:02.519><c> like</c><00:14:02.760><c> a</c>

00:14:03.050 --> 00:14:03.060 align:start position:0%
of a use of generics is something like a
 

00:14:03.060 --> 00:14:06.769 align:start position:0%
of a use of generics is something like a
resizable<00:14:03.600><c> array</c><00:14:03.899><c> some</c><00:14:04.320><c> container</c><00:14:04.860><c> which</c>

00:14:06.769 --> 00:14:06.779 align:start position:0%
resizable array some container which
 

00:14:06.779 --> 00:14:08.210 align:start position:0%
resizable array some container which
yeah<00:14:07.079><c> in</c><00:14:07.200><c> this</c><00:14:07.320><c> case</c><00:14:07.440><c> it's</c><00:14:07.620><c> just</c><00:14:07.800><c> an</c><00:14:07.920><c> array</c>

00:14:08.210 --> 00:14:08.220 align:start position:0%
yeah in this case it's just an array
 

00:14:08.220 --> 00:14:11.930 align:start position:0%
yeah in this case it's just an array
that<00:14:08.720><c> if</c><00:14:09.800><c> you</c><00:14:10.800><c> want</c><00:14:10.980><c> to</c><00:14:11.100><c> append</c><00:14:11.459><c> something</c><00:14:11.639><c> to</c>

00:14:11.930 --> 00:14:11.940 align:start position:0%
that if you want to append something to
 

00:14:11.940 --> 00:14:14.750 align:start position:0%
that if you want to append something to
it<00:14:12.180><c> and</c><00:14:12.420><c> it</c><00:14:12.660><c> see</c><00:14:13.079><c> the</c><00:14:13.860><c> array</c><00:14:14.100><c> is</c><00:14:14.220><c> already</c><00:14:14.399><c> full</c>

00:14:14.750 --> 00:14:14.760 align:start position:0%
it and it see the array is already full
 

00:14:14.760 --> 00:14:16.430 align:start position:0%
it and it see the array is already full
you<00:14:15.060><c> just</c><00:14:15.240><c> reallocate</c><00:14:15.720><c> with</c><00:14:15.899><c> twice</c><00:14:16.200><c> the</c><00:14:16.320><c> size</c>

00:14:16.430 --> 00:14:16.440 align:start position:0%
you just reallocate with twice the size
 

00:14:16.440 --> 00:14:19.730 align:start position:0%
you just reallocate with twice the size
copy<00:14:16.860><c> things</c><00:14:16.920><c> over</c><00:14:17.240><c> and</c><00:14:18.240><c> yeah</c><00:14:18.839><c> otherwise</c><00:14:19.560><c> you</c>

00:14:19.730 --> 00:14:19.740 align:start position:0%
copy things over and yeah otherwise you
 

00:14:19.740 --> 00:14:20.810 align:start position:0%
copy things over and yeah otherwise you
can<00:14:19.860><c> just</c><00:14:19.980><c> add</c>

00:14:20.810 --> 00:14:20.820 align:start position:0%
can just add
 

00:14:20.820 --> 00:14:24.170 align:start position:0%
can just add
the<00:14:21.300><c> element</c><00:14:21.600><c> to</c><00:14:21.959><c> the</c><00:14:22.139><c> end</c><00:14:22.440><c> of</c><00:14:22.620><c> the</c><00:14:22.740><c> array</c><00:14:23.399><c> and</c>

00:14:24.170 --> 00:14:24.180 align:start position:0%
the element to the end of the array and
 

00:14:24.180 --> 00:14:27.829 align:start position:0%
the element to the end of the array and
yeah<00:14:24.839><c> then</c><00:14:25.260><c> we</c><00:14:25.440><c> can</c><00:14:25.620><c> also</c><00:14:25.920><c> Define</c><00:14:26.760><c> an</c><00:14:27.120><c> index</c>

00:14:27.829 --> 00:14:27.839 align:start position:0%
yeah then we can also Define an index
 

00:14:27.839 --> 00:14:30.590 align:start position:0%
yeah then we can also Define an index
access<00:14:28.139><c> as</c><00:14:28.620><c> a</c><00:14:28.860><c> user-defined</c><00:14:29.519><c> operator</c><00:14:29.880><c> which</c>

00:14:30.590 --> 00:14:30.600 align:start position:0%
access as a user-defined operator which
 

00:14:30.600 --> 00:14:32.150 align:start position:0%
access as a user-defined operator which
will<00:14:30.779><c> then</c><00:14:30.959><c> have</c><00:14:31.139><c> this</c><00:14:31.320><c> thing</c><00:14:31.500><c> actually</c><00:14:31.860><c> work</c>

00:14:32.150 --> 00:14:32.160 align:start position:0%
will then have this thing actually work
 

00:14:32.160 --> 00:14:33.710 align:start position:0%
will then have this thing actually work
nicely

00:14:33.710 --> 00:14:33.720 align:start position:0%
nicely
 

00:14:33.720 --> 00:14:35.269 align:start position:0%
nicely
yeah<00:14:34.200><c> one</c><00:14:34.440><c> would</c><00:14:34.620><c> need</c><00:14:34.800><c> an</c><00:14:34.920><c> allocation</c>

00:14:35.269 --> 00:14:35.279 align:start position:0%
yeah one would need an allocation
 

00:14:35.279 --> 00:14:37.190 align:start position:0%
yeah one would need an allocation
function<00:14:35.700><c> and</c><00:14:36.000><c> so</c><00:14:36.180><c> on</c><00:14:36.360><c> equipped</c><00:14:37.019><c> with</c><00:14:37.079><c> that</c>

00:14:37.190 --> 00:14:37.200 align:start position:0%
function and so on equipped with that
 

00:14:37.200 --> 00:14:39.889 align:start position:0%
function and so on equipped with that
but<00:14:37.380><c> we</c><00:14:37.560><c> can</c><00:14:37.680><c> then</c><00:14:37.860><c> build</c><00:14:38.040><c> a</c><00:14:38.220><c> library</c><00:14:38.399><c> to</c>

00:14:39.889 --> 00:14:39.899 align:start position:0%
but we can then build a library to
 

00:14:39.899 --> 00:14:41.629 align:start position:0%
but we can then build a library to
actually<00:14:40.560><c> build</c><00:14:40.920><c> these</c><00:14:41.220><c> things</c><00:14:41.339><c> without</c>

00:14:41.629 --> 00:14:41.639 align:start position:0%
actually build these things without
 

00:14:41.639 --> 00:14:44.090 align:start position:0%
actually build these things without
having<00:14:42.240><c> special</c><00:14:42.480><c> casing</c><00:14:42.959><c> for</c><00:14:43.079><c> each</c><00:14:43.260><c> type</c><00:14:43.500><c> each</c>

00:14:44.090 --> 00:14:44.100 align:start position:0%
having special casing for each type each
 

00:14:44.100 --> 00:14:46.310 align:start position:0%
having special casing for each type each
kind<00:14:44.279><c> of</c><00:14:44.399><c> Base</c><00:14:44.579><c> type</c>

00:14:46.310 --> 00:14:46.320 align:start position:0%
kind of Base type
 

00:14:46.320 --> 00:14:47.930 align:start position:0%
kind of Base type
but<00:14:46.680><c> I</c><00:14:46.800><c> have</c><00:14:46.920><c> years</c><00:14:47.100><c> a</c><00:14:47.279><c> bit</c><00:14:47.399><c> cheated</c><00:14:47.639><c> though</c>

00:14:47.930 --> 00:14:47.940 align:start position:0%
but I have years a bit cheated though
 

00:14:47.940 --> 00:14:49.370 align:start position:0%
but I have years a bit cheated though
because<00:14:48.240><c> in</c><00:14:48.600><c> reality</c><00:14:48.839><c> things</c><00:14:49.019><c> are</c><00:14:49.199><c> more</c>

00:14:49.370 --> 00:14:49.380 align:start position:0%
because in reality things are more
 

00:14:49.380 --> 00:14:51.350 align:start position:0%
because in reality things are more
complicated<00:14:49.980><c> of</c><00:14:50.279><c> course</c><00:14:50.399><c> because</c><00:14:50.880><c> we</c><00:14:51.180><c> have</c>

00:14:51.350 --> 00:14:51.360 align:start position:0%
complicated of course because we have
 

00:14:51.360 --> 00:14:53.030 align:start position:0%
complicated of course because we have
data<00:14:51.600><c> locations</c><00:14:52.019><c> again</c>

00:14:53.030 --> 00:14:53.040 align:start position:0%
data locations again
 

00:14:53.040 --> 00:14:55.069 align:start position:0%
data locations again
maybe<00:14:53.519><c> I</c><00:14:53.820><c> need</c><00:14:53.940><c> to</c><00:14:54.060><c> restrict</c><00:14:54.360><c> the</c><00:14:54.600><c> base</c><00:14:54.839><c> type</c>

00:14:55.069 --> 00:14:55.079 align:start position:0%
maybe I need to restrict the base type
 

00:14:55.079 --> 00:14:57.530 align:start position:0%
maybe I need to restrict the base type
as<00:14:55.620><c> by</c><00:14:56.100><c> some</c><00:14:56.339><c> trade</c><00:14:56.639><c> mechanism</c><00:14:57.000><c> to</c><00:14:57.240><c> something</c>

00:14:57.530 --> 00:14:57.540 align:start position:0%
as by some trade mechanism to something
 

00:14:57.540 --> 00:14:59.509 align:start position:0%
as by some trade mechanism to something
that<00:14:57.899><c> can</c><00:14:58.139><c> live</c><00:14:58.320><c> in</c><00:14:58.500><c> memory</c><00:14:58.800><c> which</c><00:14:59.100><c> may</c><00:14:59.279><c> be</c><00:14:59.399><c> a</c>

00:14:59.509 --> 00:14:59.519 align:start position:0%
that can live in memory which may be a
 

00:14:59.519 --> 00:15:01.129 align:start position:0%
that can live in memory which may be a
value<00:14:59.699><c> type</c><00:15:00.000><c> or</c><00:15:00.180><c> another</c><00:15:00.300><c> memory</c><00:15:00.779><c> array</c>

00:15:01.129 --> 00:15:01.139 align:start position:0%
value type or another memory array
 

00:15:01.139 --> 00:15:03.769 align:start position:0%
value type or another memory array
something<00:15:01.680><c> like</c><00:15:01.980><c> that</c><00:15:02.160><c> so</c><00:15:02.459><c> in</c><00:15:03.180><c> the</c><00:15:03.300><c> end</c><00:15:03.420><c> it</c>

00:15:03.769 --> 00:15:03.779 align:start position:0%
something like that so in the end it
 

00:15:03.779 --> 00:15:06.290 align:start position:0%
something like that so in the end it
will<00:15:03.959><c> get</c><00:15:04.680><c> complicated</c><00:15:05.160><c> but</c><00:15:05.639><c> it</c><00:15:06.060><c> will</c><00:15:06.120><c> be</c>

00:15:06.290 --> 00:15:06.300 align:start position:0%
will get complicated but it will be
 

00:15:06.300 --> 00:15:08.689 align:start position:0%
will get complicated but it will be
worthwhile

00:15:08.689 --> 00:15:08.699 align:start position:0%
 
 

00:15:08.699 --> 00:15:11.030 align:start position:0%
 
and<00:15:09.360><c> yeah</c>

00:15:11.030 --> 00:15:11.040 align:start position:0%
and yeah
 

00:15:11.040 --> 00:15:14.329 align:start position:0%
and yeah
if<00:15:11.579><c> one</c><00:15:11.760><c> wants</c><00:15:12.120><c> to</c><00:15:12.180><c> take</c><00:15:12.420><c> this</c><00:15:13.320><c> upper</c><00:15:14.040><c> notion</c>

00:15:14.329 --> 00:15:14.339 align:start position:0%
if one wants to take this upper notion
 

00:15:14.339 --> 00:15:17.210 align:start position:0%
if one wants to take this upper notion
all<00:15:14.699><c> the</c><00:15:14.820><c> way</c><00:15:14.880><c> one</c><00:15:15.720><c> can</c><00:15:16.019><c> actually</c><00:15:16.320><c> then</c><00:15:16.980><c> think</c>

00:15:17.210 --> 00:15:17.220 align:start position:0%
all the way one can actually then think
 

00:15:17.220 --> 00:15:21.050 align:start position:0%
all the way one can actually then think
about<00:15:17.459><c> even</c><00:15:18.139><c> defining</c><00:15:19.139><c> the</c><00:15:19.560><c> most</c><00:15:19.800><c> basic</c><00:15:20.399><c> types</c>

00:15:21.050 --> 00:15:21.060 align:start position:0%
about even defining the most basic types
 

00:15:21.060 --> 00:15:23.389 align:start position:0%
about even defining the most basic types
in<00:15:21.839><c> solidity</c><00:15:22.260><c> itself</c>

00:15:23.389 --> 00:15:23.399 align:start position:0%
in solidity itself
 

00:15:23.399 --> 00:15:26.210 align:start position:0%
in solidity itself
this<00:15:23.820><c> would</c><00:15:23.940><c> be</c><00:15:24.060><c> the</c><00:15:24.180><c> definition</c><00:15:24.540><c> of</c><00:15:25.079><c> uh</c><00:15:25.800><c> the</c>

00:15:26.210 --> 00:15:26.220 align:start position:0%
this would be the definition of uh the
 

00:15:26.220 --> 00:15:28.310 align:start position:0%
this would be the definition of uh the
current<00:15:26.639><c> representation</c><00:15:27.240><c> of</c><00:15:27.480><c> memory</c><00:15:27.779><c> arrays</c>

00:15:28.310 --> 00:15:28.320 align:start position:0%
current representation of memory arrays
 

00:15:28.320 --> 00:15:30.170 align:start position:0%
current representation of memory arrays
in<00:15:28.860><c> solidity</c>

00:15:30.170 --> 00:15:30.180 align:start position:0%
in solidity
 

00:15:30.180 --> 00:15:32.689 align:start position:0%
in solidity
written<00:15:30.779><c> as</c><00:15:30.959><c> user-defined</c><00:15:31.800><c> type</c><00:15:32.040><c> with</c><00:15:32.459><c> the</c>

00:15:32.689 --> 00:15:32.699 align:start position:0%
written as user-defined type with the
 

00:15:32.699 --> 00:15:35.150 align:start position:0%
written as user-defined type with the
customly<00:15:33.060><c> defined</c><00:15:33.420><c> index</c><00:15:33.839><c> access</c><00:15:34.079><c> to</c><00:15:34.440><c> it</c>

00:15:35.150 --> 00:15:35.160 align:start position:0%
customly defined index access to it
 

00:15:35.160 --> 00:15:37.430 align:start position:0%
customly defined index access to it
so<00:15:35.639><c> in</c><00:15:35.760><c> the</c><00:15:35.940><c> end</c><00:15:36.060><c> for</c><00:15:36.360><c> any</c><00:15:36.600><c> bass</c><00:15:37.139><c> type</c><00:15:37.260><c> of</c>

00:15:37.430 --> 00:15:37.440 align:start position:0%
so in the end for any bass type of
 

00:15:37.440 --> 00:15:39.650 align:start position:0%
so in the end for any bass type of
memory<00:15:37.620><c> array</c><00:15:37.920><c> is</c><00:15:38.160><c> just</c><00:15:38.399><c> one</c><00:15:38.760><c> stack</c><00:15:39.000><c> slot</c><00:15:39.360><c> you</c>

00:15:39.650 --> 00:15:39.660 align:start position:0%
memory array is just one stack slot you
 

00:15:39.660 --> 00:15:41.269 align:start position:0%
memory array is just one stack slot you
refer<00:15:39.959><c> to</c><00:15:40.079><c> memory</c><00:15:40.320><c> arrays</c><00:15:40.560><c> just</c><00:15:40.740><c> as</c><00:15:40.860><c> one</c><00:15:41.040><c> stack</c>

00:15:41.269 --> 00:15:41.279 align:start position:0%
refer to memory arrays just as one stack
 

00:15:41.279 --> 00:15:44.990 align:start position:0%
refer to memory arrays just as one stack
slot<00:15:41.940><c> be</c><00:15:42.420><c> index</c><00:15:42.720><c> access</c><00:15:42.959><c> by</c><00:15:43.320><c> it</c><00:15:43.500><c> by</c><00:15:44.279><c> fetching</c><00:15:44.760><c> I</c>

00:15:44.990 --> 00:15:45.000 align:start position:0%
slot be index access by it by fetching I
 

00:15:45.000 --> 00:15:47.509 align:start position:0%
slot be index access by it by fetching I
mean<00:15:45.120><c> this</c><00:15:45.240><c> desktop</c><00:15:45.920><c> points</c><00:15:46.920><c> to</c><00:15:47.040><c> some</c><00:15:47.220><c> memory</c>

00:15:47.509 --> 00:15:47.519 align:start position:0%
mean this desktop points to some memory
 

00:15:47.519 --> 00:15:49.009 align:start position:0%
mean this desktop points to some memory
area<00:15:47.699><c> where</c><00:15:48.060><c> there</c><00:15:48.240><c> is</c><00:15:48.360><c> the</c><00:15:48.480><c> size</c><00:15:48.660><c> of</c><00:15:48.899><c> the</c>

00:15:49.009 --> 00:15:49.019 align:start position:0%
area where there is the size of the
 

00:15:49.019 --> 00:15:50.810 align:start position:0%
area where there is the size of the
array<00:15:49.380><c> and</c><00:15:49.680><c> followed</c><00:15:49.980><c> by</c><00:15:50.100><c> the</c><00:15:50.279><c> data</c><00:15:50.579><c> there's</c>

00:15:50.810 --> 00:15:50.820 align:start position:0%
array and followed by the data there's
 

00:15:50.820 --> 00:15:52.509 align:start position:0%
array and followed by the data there's
the<00:15:51.120><c> current</c><00:15:51.240><c> layout</c><00:15:51.600><c> at</c><00:15:51.779><c> least</c>

00:15:52.509 --> 00:15:52.519 align:start position:0%
the current layout at least
 

00:15:52.519 --> 00:15:54.829 align:start position:0%
the current layout at least
and<00:15:53.519><c> yeah</c><00:15:53.699><c> in</c><00:15:53.820><c> index</c><00:15:54.180><c> access</c><00:15:54.300><c> we</c><00:15:54.600><c> can</c><00:15:54.720><c> just</c>

00:15:54.829 --> 00:15:54.839 align:start position:0%
and yeah in index access we can just
 

00:15:54.839 --> 00:15:57.650 align:start position:0%
and yeah in index access we can just
fetch<00:15:55.260><c> the</c><00:15:55.380><c> size</c><00:15:55.760><c> uh</c><00:15:56.760><c> through</c><00:15:57.300><c> the</c><00:15:57.480><c> bounce</c>

00:15:57.650 --> 00:15:57.660 align:start position:0%
fetch the size uh through the bounce
 

00:15:57.660 --> 00:15:59.930 align:start position:0%
fetch the size uh through the bounce
checking<00:15:58.079><c> and</c><00:15:58.500><c> fetch</c><00:15:59.100><c> whatever</c><00:15:59.220><c> result</c><00:15:59.519><c> we</c>

00:15:59.930 --> 00:15:59.940 align:start position:0%
checking and fetch whatever result we
 

00:15:59.940 --> 00:16:01.250 align:start position:0%
checking and fetch whatever result we
have<00:16:00.060><c> at</c><00:16:00.180><c> the</c><00:16:00.300><c> offset</c><00:16:00.600><c> that</c><00:16:00.779><c> the</c><00:16:00.959><c> index</c>

00:16:01.250 --> 00:16:01.260 align:start position:0%
have at the offset that the index
 

00:16:01.260 --> 00:16:02.629 align:start position:0%
have at the offset that the index
pointed<00:16:01.860><c> to</c>

00:16:02.629 --> 00:16:02.639 align:start position:0%
pointed to
 

00:16:02.639 --> 00:16:04.730 align:start position:0%
pointed to
and<00:16:02.880><c> again</c><00:16:03.120><c> we</c><00:16:03.360><c> could</c><00:16:03.480><c> Define</c><00:16:03.660><c> then</c><00:16:04.019><c> that</c>

00:16:04.730 --> 00:16:04.740 align:start position:0%
and again we could Define then that
 

00:16:04.740 --> 00:16:07.850 align:start position:0%
and again we could Define then that
index<00:16:05.220><c> accesses</c><00:16:05.880><c> work</c><00:16:06.480><c> as</c><00:16:06.720><c> expected</c><00:16:07.199><c> and</c><00:16:07.380><c> yeah</c>

00:16:07.850 --> 00:16:07.860 align:start position:0%
index accesses work as expected and yeah
 

00:16:07.860 --> 00:16:09.949 align:start position:0%
index accesses work as expected and yeah
a<00:16:08.459><c> length</c><00:16:08.760><c> field</c><00:16:08.940><c> could</c><00:16:09.240><c> be</c><00:16:09.360><c> added</c><00:16:09.600><c> to</c><00:16:09.779><c> that</c>

00:16:09.949 --> 00:16:09.959 align:start position:0%
a length field could be added to that
 

00:16:09.959 --> 00:16:13.310 align:start position:0%
a length field could be added to that
all<00:16:10.860><c> defined</c><00:16:11.579><c> in</c><00:16:11.760><c> language</c>

00:16:13.310 --> 00:16:13.320 align:start position:0%
all defined in language
 

00:16:13.320 --> 00:16:15.829 align:start position:0%
all defined in language
which<00:16:13.920><c> has</c><00:16:14.100><c> the</c><00:16:14.339><c> advantage</c><00:16:14.760><c> we</c><00:16:15.180><c> had</c><00:16:15.360><c> often</c><00:16:15.720><c> the</c>

00:16:15.829 --> 00:16:15.839 align:start position:0%
which has the advantage we had often the
 

00:16:15.839 --> 00:16:18.230 align:start position:0%
which has the advantage we had often the
request<00:16:16.500><c> to</c><00:16:16.860><c> allow</c><00:16:17.339><c> slicing</c><00:16:17.820><c> for</c><00:16:17.940><c> memory</c>

00:16:18.230 --> 00:16:18.240 align:start position:0%
request to allow slicing for memory
 

00:16:18.240 --> 00:16:20.030 align:start position:0%
request to allow slicing for memory
types<00:16:18.600><c> which</c><00:16:19.019><c> we</c><00:16:19.199><c> can't</c><00:16:19.380><c> because</c><00:16:19.680><c> the</c>

00:16:20.030 --> 00:16:20.040 align:start position:0%
types which we can't because the
 

00:16:20.040 --> 00:16:21.889 align:start position:0%
types which we can't because the
representation<00:16:20.519><c> I'll</c><00:16:20.820><c> show</c><00:16:21.000><c> here</c><00:16:21.180><c> doesn't</c>

00:16:21.889 --> 00:16:21.899 align:start position:0%
representation I'll show here doesn't
 

00:16:21.899 --> 00:16:23.509 align:start position:0%
representation I'll show here doesn't
allow<00:16:22.260><c> it</c>

00:16:23.509 --> 00:16:23.519 align:start position:0%
allow it
 

00:16:23.519 --> 00:16:25.970 align:start position:0%
allow it
since<00:16:24.000><c> we</c><00:16:24.180><c> expect</c><00:16:24.360><c> the</c><00:16:24.779><c> size</c><00:16:24.959><c> to</c><00:16:25.260><c> be</c><00:16:25.380><c> at</c><00:16:25.800><c> the</c>

00:16:25.970 --> 00:16:25.980 align:start position:0%
since we expect the size to be at the
 

00:16:25.980 --> 00:16:28.490 align:start position:0%
since we expect the size to be at the
first<00:16:26.360><c> memory</c><00:16:27.360><c> offset</c><00:16:27.720><c> where</c><00:16:27.959><c> the</c><00:16:28.260><c> memory</c>

00:16:28.490 --> 00:16:28.500 align:start position:0%
first memory offset where the memory
 

00:16:28.500 --> 00:16:30.650 align:start position:0%
first memory offset where the memory
pointer<00:16:28.860><c> that</c><00:16:29.579><c> is</c><00:16:29.820><c> the</c><00:16:30.000><c> representation</c><00:16:30.420><c> type</c>

00:16:30.650 --> 00:16:30.660 align:start position:0%
pointer that is the representation type
 

00:16:30.660 --> 00:16:33.490 align:start position:0%
pointer that is the representation type
of<00:16:30.839><c> this</c><00:16:31.019><c> points</c><00:16:31.500><c> to</c><00:16:31.560><c> is</c><00:16:32.100><c> the</c><00:16:32.339><c> size</c>

00:16:33.490 --> 00:16:33.500 align:start position:0%
of this points to is the size
 

00:16:33.500 --> 00:16:36.050 align:start position:0%
of this points to is the size
we<00:16:34.500><c> can</c><00:16:34.680><c> just</c><00:16:34.920><c> slice</c><00:16:35.339><c> away</c><00:16:35.519><c> from</c><00:16:35.760><c> the</c><00:16:35.940><c> first</c>

00:16:36.050 --> 00:16:36.060 align:start position:0%
we can just slice away from the first
 

00:16:36.060 --> 00:16:36.949 align:start position:0%
we can just slice away from the first
element

00:16:36.949 --> 00:16:36.959 align:start position:0%
element
 

00:16:36.959 --> 00:16:39.410 align:start position:0%
element
for<00:16:37.380><c> that</c><00:16:37.500><c> to</c><00:16:37.680><c> work</c><00:16:37.860><c> memory</c><00:16:38.820><c> arrays</c><00:16:39.180><c> would</c>

00:16:39.410 --> 00:16:39.420 align:start position:0%
for that to work memory arrays would
 

00:16:39.420 --> 00:16:41.210 align:start position:0%
for that to work memory arrays would
have<00:16:39.660><c> to</c><00:16:39.839><c> work</c><00:16:39.959><c> different</c><00:16:40.259><c> similarly</c><00:16:40.920><c> to</c><00:16:41.100><c> call</c>

00:16:41.210 --> 00:16:41.220 align:start position:0%
have to work different similarly to call
 

00:16:41.220 --> 00:16:43.430 align:start position:0%
have to work different similarly to call
data<00:16:41.639><c> types</c><00:16:41.820><c> there</c><00:16:42.420><c> you</c><00:16:42.660><c> have</c>

00:16:43.430 --> 00:16:43.440 align:start position:0%
data types there you have
 

00:16:43.440 --> 00:16:46.970 align:start position:0%
data types there you have
uh<00:16:44.220><c> offset</c><00:16:44.759><c> and</c><00:16:45.120><c> size</c><00:16:45.360><c> on</c><00:16:45.720><c> stack</c>

00:16:46.970 --> 00:16:46.980 align:start position:0%
uh offset and size on stack
 

00:16:46.980 --> 00:16:48.829 align:start position:0%
uh offset and size on stack
it<00:16:47.519><c> would</c><00:16:47.699><c> be</c><00:16:47.880><c> a</c><00:16:48.000><c> huge</c><00:16:48.240><c> effort</c><00:16:48.480><c> for</c><00:16:48.600><c> us</c>

00:16:48.829 --> 00:16:48.839 align:start position:0%
it would be a huge effort for us
 

00:16:48.839 --> 00:16:50.389 align:start position:0%
it would be a huge effort for us
currently<00:16:49.139><c> to</c><00:16:49.380><c> change</c><00:16:49.500><c> the</c><00:16:49.740><c> entire</c><00:16:49.920><c> compiler</c>

00:16:50.389 --> 00:16:50.399 align:start position:0%
currently to change the entire compiler
 

00:16:50.399 --> 00:16:52.670 align:start position:0%
currently to change the entire compiler
to<00:16:50.759><c> come</c><00:16:51.000><c> to</c><00:16:51.540><c> change</c><00:16:51.839><c> the</c><00:16:52.079><c> representation</c><00:16:52.500><c> of</c>

00:16:52.670 --> 00:16:52.680 align:start position:0%
to come to change the representation of
 

00:16:52.680 --> 00:16:55.189 align:start position:0%
to come to change the representation of
memory<00:16:52.980><c> types</c><00:16:53.759><c> if</c><00:16:54.360><c> we</c><00:16:54.480><c> had</c><00:16:54.660><c> things</c><00:16:54.839><c> defined</c>

00:16:55.189 --> 00:16:55.199 align:start position:0%
memory types if we had things defined
 

00:16:55.199 --> 00:16:56.509 align:start position:0%
memory types if we had things defined
like<00:16:55.320><c> this</c>

00:16:56.509 --> 00:16:56.519 align:start position:0%
like this
 

00:16:56.519 --> 00:16:59.269 align:start position:0%
like this
it's<00:16:57.060><c> minimal</c><00:16:57.480><c> changes</c><00:16:57.899><c> I</c><00:16:58.440><c> can</c><00:16:58.620><c> just</c><00:16:58.800><c> say</c><00:16:58.980><c> now</c>

00:16:59.269 --> 00:16:59.279 align:start position:0%
it's minimal changes I can just say now
 

00:16:59.279 --> 00:17:01.670 align:start position:0%
it's minimal changes I can just say now
my<00:16:59.820><c> memory</c><00:17:00.120><c> array</c><00:17:00.420><c> is</c><00:17:00.600><c> defined</c><00:17:00.899><c> as</c><00:17:01.079><c> a</c><00:17:01.259><c> tuple</c><00:17:01.560><c> of</c>

00:17:01.670 --> 00:17:01.680 align:start position:0%
my memory array is defined as a tuple of
 

00:17:01.680 --> 00:17:04.130 align:start position:0%
my memory array is defined as a tuple of
Stack<00:17:01.920><c> slots</c><00:17:02.160><c> one</c><00:17:03.000><c> of</c><00:17:03.120><c> them</c><00:17:03.240><c> is</c><00:17:03.540><c> pointer</c><00:17:03.959><c> to</c>

00:17:04.130 --> 00:17:04.140 align:start position:0%
Stack slots one of them is pointer to
 

00:17:04.140 --> 00:17:06.949 align:start position:0%
Stack slots one of them is pointer to
data<00:17:04.559><c> area</c><00:17:04.679><c> the</c><00:17:05.040><c> other</c><00:17:05.160><c> so</c><00:17:05.400><c> it's</c><00:17:05.640><c> the</c><00:17:05.760><c> size</c><00:17:05.959><c> and</c>

00:17:06.949 --> 00:17:06.959 align:start position:0%
data area the other so it's the size and
 

00:17:06.959 --> 00:17:10.730 align:start position:0%
data area the other so it's the size and
yeah<00:17:07.559><c> have</c><00:17:08.339><c> a</c><00:17:08.819><c> similar</c><00:17:09.179><c> definition</c><00:17:09.500><c> as</c><00:17:10.500><c> before</c>

00:17:10.730 --> 00:17:10.740 align:start position:0%
yeah have a similar definition as before
 

00:17:10.740 --> 00:17:15.409 align:start position:0%
yeah have a similar definition as before
slide<00:17:11.699><c> changes</c><00:17:12.179><c> but</c><00:17:12.959><c> uh</c><00:17:13.860><c> a</c><00:17:14.520><c> few</c><00:17:14.819><c> Source</c>

00:17:15.409 --> 00:17:15.419 align:start position:0%
slide changes but uh a few Source
 

00:17:15.419 --> 00:17:17.090 align:start position:0%
slide changes but uh a few Source
changes<00:17:15.660><c> in</c><00:17:15.839><c> our</c><00:17:15.959><c> standard</c><00:17:16.260><c> Library</c><00:17:16.439><c> would</c>

00:17:17.090 --> 00:17:17.100 align:start position:0%
changes in our standard Library would
 

00:17:17.100 --> 00:17:18.829 align:start position:0%
changes in our standard Library would
then

00:17:18.829 --> 00:17:18.839 align:start position:0%
then
 

00:17:18.839 --> 00:17:20.750 align:start position:0%
then
be<00:17:19.260><c> the</c><00:17:19.500><c> same</c><00:17:19.620><c> as</c><00:17:19.919><c> changing</c><00:17:20.400><c> the</c><00:17:20.579><c> entire</c>

00:17:20.750 --> 00:17:20.760 align:start position:0%
be the same as changing the entire
 

00:17:20.760 --> 00:17:23.090 align:start position:0%
be the same as changing the entire
layout<00:17:21.179><c> of</c><00:17:21.419><c> uh</c>

00:17:23.090 --> 00:17:23.100 align:start position:0%
layout of uh
 

00:17:23.100 --> 00:17:26.689 align:start position:0%
layout of uh
of<00:17:23.459><c> memory</c><00:17:23.819><c> types</c><00:17:24.240><c> which</c><00:17:24.660><c> would</c><00:17:24.900><c> be</c><00:17:25.079><c> yeah</c>

00:17:26.689 --> 00:17:26.699 align:start position:0%
of memory types which would be yeah
 

00:17:26.699 --> 00:17:29.750 align:start position:0%
of memory types which would be yeah
month<00:17:27.179><c> of</c><00:17:27.360><c> month</c><00:17:27.780><c> of</c><00:17:28.020><c> work</c><00:17:28.319><c> why</c><00:17:29.100><c> we</c><00:17:29.340><c> maintained</c>

00:17:29.750 --> 00:17:29.760 align:start position:0%
month of month of work why we maintained
 

00:17:29.760 --> 00:17:32.930 align:start position:0%
month of month of work why we maintained
uh<00:17:30.240><c> everything</c><00:17:30.540><c> hardcoded</c><00:17:31.140><c> in</c><00:17:31.260><c> the</c><00:17:31.380><c> compiler</c>

00:17:32.930 --> 00:17:32.940 align:start position:0%
uh everything hardcoded in the compiler
 

00:17:32.940 --> 00:17:35.330 align:start position:0%
uh everything hardcoded in the compiler
of<00:17:33.299><c> course</c><00:17:33.419><c> it's</c><00:17:33.600><c> all</c><00:17:33.900><c> the</c><00:17:34.020><c> disadvantages</c>

00:17:35.330 --> 00:17:35.340 align:start position:0%
of course it's all the disadvantages
 

00:17:35.340 --> 00:17:37.070 align:start position:0%
of course it's all the disadvantages
if<00:17:35.760><c> we</c><00:17:35.880><c> actually</c><00:17:36.059><c> keep</c><00:17:36.299><c> this</c><00:17:36.539><c> extremely</c>

00:17:37.070 --> 00:17:37.080 align:start position:0%
if we actually keep this extremely
 

00:17:37.080 --> 00:17:39.529 align:start position:0%
if we actually keep this extremely
generic<00:17:37.559><c> like</c><00:17:37.799><c> that</c><00:17:37.980><c> we</c><00:17:38.700><c> will</c><00:17:38.940><c> lose</c><00:17:39.059><c> semantic</c>

00:17:39.529 --> 00:17:39.539 align:start position:0%
generic like that we will lose semantic
 

00:17:39.539 --> 00:17:40.669 align:start position:0%
generic like that we will lose semantic
information<00:17:39.720><c> that</c><00:17:40.080><c> will</c><00:17:40.320><c> actually</c><00:17:40.500><c> make</c>

00:17:40.669 --> 00:17:40.679 align:start position:0%
information that will actually make
 

00:17:40.679 --> 00:17:43.010 align:start position:0%
information that will actually make
memory<00:17:40.980><c> optimization</c><00:17:41.520><c> harder</c><00:17:42.419><c> because</c><00:17:42.780><c> yeah</c>

00:17:43.010 --> 00:17:43.020 align:start position:0%
memory optimization harder because yeah
 

00:17:43.020 --> 00:17:44.570 align:start position:0%
memory optimization harder because yeah
but<00:17:43.260><c> the</c><00:17:43.440><c> compiler</c><00:17:43.799><c> sees</c><00:17:44.039><c> it's</c><00:17:44.220><c> just</c><00:17:44.340><c> a</c><00:17:44.460><c> bunch</c>

00:17:44.570 --> 00:17:44.580 align:start position:0%
but the compiler sees it's just a bunch
 

00:17:44.580 --> 00:17:46.610 align:start position:0%
but the compiler sees it's just a bunch
of<00:17:44.700><c> Stack</c><00:17:45.000><c> slots</c><00:17:45.360><c> there's</c><00:17:45.960><c> no</c><00:17:46.260><c> idea</c><00:17:46.440><c> that</c>

00:17:46.610 --> 00:17:46.620 align:start position:0%
of Stack slots there's no idea that
 

00:17:46.620 --> 00:17:48.830 align:start position:0%
of Stack slots there's no idea that
that's<00:17:46.799><c> actually</c><00:17:47.100><c> memory</c><00:17:47.880><c> areas</c><00:17:48.360><c> we're</c>

00:17:48.830 --> 00:17:48.840 align:start position:0%
that's actually memory areas we're
 

00:17:48.840 --> 00:17:50.150 align:start position:0%
that's actually memory areas we're
talking<00:17:49.020><c> about</c><00:17:49.140><c> that</c><00:17:49.380><c> are</c><00:17:49.559><c> allocated</c><00:17:49.919><c> may</c>

00:17:50.150 --> 00:17:50.160 align:start position:0%
talking about that are allocated may
 

00:17:50.160 --> 00:17:52.190 align:start position:0%
talking about that are allocated may
only<00:17:50.340><c> be</c><00:17:50.460><c> allocated</c><00:17:50.880><c> temporarily</c><00:17:51.419><c> and</c><00:17:52.020><c> stuff</c>

00:17:52.190 --> 00:17:52.200 align:start position:0%
only be allocated temporarily and stuff
 

00:17:52.200 --> 00:17:54.289 align:start position:0%
only be allocated temporarily and stuff
like<00:17:52.380><c> that</c><00:17:52.559><c> so</c><00:17:52.980><c> I'm</c><00:17:53.580><c> not</c><00:17:53.820><c> sure</c><00:17:53.880><c> whether</c><00:17:54.059><c> we</c>

00:17:54.289 --> 00:17:54.299 align:start position:0%
like that so I'm not sure whether we
 

00:17:54.299 --> 00:17:56.810 align:start position:0%
like that so I'm not sure whether we
will<00:17:54.480><c> actually</c><00:17:54.660><c> go</c><00:17:55.020><c> this</c><00:17:55.260><c> far</c><00:17:55.440><c> and</c><00:17:56.280><c> if</c><00:17:56.460><c> so</c><00:17:56.640><c> we</c>

00:17:56.810 --> 00:17:56.820 align:start position:0%
will actually go this far and if so we
 

00:17:56.820 --> 00:17:59.650 align:start position:0%
will actually go this far and if so we
would<00:17:57.000><c> maybe</c><00:17:57.360><c> probably</c><00:17:57.780><c> do</c><00:17:58.140><c> this</c><00:17:58.380><c> in</c><00:17:58.679><c> a</c><00:17:58.860><c> yeah</c>

00:17:59.650 --> 00:17:59.660 align:start position:0%
would maybe probably do this in a yeah
 

00:17:59.660 --> 00:18:01.789 align:start position:0%
would maybe probably do this in a yeah
compiler<00:18:00.660><c> internal</c><00:18:01.020><c> manner</c><00:18:01.380><c> where</c><00:18:01.500><c> we</c><00:18:01.620><c> will</c>

00:18:01.789 --> 00:18:01.799 align:start position:0%
compiler internal manner where we will
 

00:18:01.799 --> 00:18:03.710 align:start position:0%
compiler internal manner where we will
still<00:18:01.919><c> assume</c><00:18:02.400><c> certain</c><00:18:02.880><c> semantic</c><00:18:03.360><c> properties</c>

00:18:03.710 --> 00:18:03.720 align:start position:0%
still assume certain semantic properties
 

00:18:03.720 --> 00:18:06.350 align:start position:0%
still assume certain semantic properties
about<00:18:03.960><c> these</c><00:18:04.500><c> functions</c><00:18:04.860><c> without</c><00:18:05.580><c> supporting</c>

00:18:06.350 --> 00:18:06.360 align:start position:0%
about these functions without supporting
 

00:18:06.360 --> 00:18:08.270 align:start position:0%
about these functions without supporting
similar<00:18:07.080><c> optimizations</c><00:18:07.559><c> that</c><00:18:07.799><c> we</c><00:18:07.919><c> can</c><00:18:08.039><c> do</c><00:18:08.100><c> if</c>

00:18:08.270 --> 00:18:08.280 align:start position:0%
similar optimizations that we can do if
 

00:18:08.280 --> 00:18:09.890 align:start position:0%
similar optimizations that we can do if
we<00:18:08.460><c> know</c><00:18:08.580><c> what</c><00:18:08.760><c> these</c><00:18:09.000><c> things</c><00:18:09.120><c> do</c>

00:18:09.890 --> 00:18:09.900 align:start position:0%
we know what these things do
 

00:18:09.900 --> 00:18:13.909 align:start position:0%
we know what these things do
uh<00:18:10.679><c> in</c><00:18:11.100><c> their</c><00:18:11.580><c> random</c><00:18:11.940><c> user</c><00:18:12.240><c> code</c>

00:18:13.909 --> 00:18:13.919 align:start position:0%
uh in their random user code
 

00:18:13.919 --> 00:18:15.710 align:start position:0%
uh in their random user code
but<00:18:14.340><c> yeah</c><00:18:14.460><c> why</c><00:18:14.640><c> did</c><00:18:14.760><c> I</c><00:18:14.880><c> say</c><00:18:15.000><c> stack</c><00:18:15.179><c> slot</c><00:18:15.539><c> all</c>

00:18:15.710 --> 00:18:15.720 align:start position:0%
but yeah why did I say stack slot all
 

00:18:15.720 --> 00:18:17.510 align:start position:0%
but yeah why did I say stack slot all
the<00:18:15.840><c> time</c><00:18:15.960><c> that's</c><00:18:16.500><c> yeah</c>

00:18:17.510 --> 00:18:17.520 align:start position:0%
the time that's yeah
 

00:18:17.520 --> 00:18:20.810 align:start position:0%
the time that's yeah
maybe<00:18:17.940><c> obvious</c><00:18:18.419><c> but</c><00:18:18.900><c> uh</c><00:18:19.559><c> just</c><00:18:19.799><c> to</c><00:18:19.980><c> mention</c><00:18:20.160><c> the</c>

00:18:20.810 --> 00:18:20.820 align:start position:0%
maybe obvious but uh just to mention the
 

00:18:20.820 --> 00:18:23.390 align:start position:0%
maybe obvious but uh just to mention the
stack<00:18:21.000><c> slot</c><00:18:21.360><c> would</c><00:18:21.480><c> be</c><00:18:21.600><c> the</c><00:18:22.080><c> one</c><00:18:22.400><c> primitive</c>

00:18:23.390 --> 00:18:23.400 align:start position:0%
stack slot would be the one primitive
 

00:18:23.400 --> 00:18:24.529 align:start position:0%
stack slot would be the one primitive
type

00:18:24.529 --> 00:18:24.539 align:start position:0%
type
 

00:18:24.539 --> 00:18:27.289 align:start position:0%
type
maybe<00:18:24.960><c> apart</c><00:18:25.380><c> from</c><00:18:25.580><c> uh</c>

00:18:27.289 --> 00:18:27.299 align:start position:0%
maybe apart from uh
 

00:18:27.299 --> 00:18:31.070 align:start position:0%
maybe apart from uh
from<00:18:27.720><c> product</c><00:18:27.900><c> types</c><00:18:28.380><c> and</c><00:18:29.280><c> even</c><00:18:29.580><c> the</c><00:18:30.179><c> basic</c><00:18:30.600><c> uh</c>

00:18:31.070 --> 00:18:31.080 align:start position:0%
from product types and even the basic uh
 

00:18:31.080 --> 00:18:33.169 align:start position:0%
from product types and even the basic uh
integer<00:18:31.559><c> types</c><00:18:31.799><c> size</c><00:18:32.039><c> initial</c><00:18:32.520><c> types</c><00:18:32.760><c> we</c><00:18:33.059><c> have</c>

00:18:33.169 --> 00:18:33.179 align:start position:0%
integer types size initial types we have
 

00:18:33.179 --> 00:18:35.990 align:start position:0%
integer types size initial types we have
right<00:18:33.480><c> now</c><00:18:34.140><c> can</c><00:18:34.679><c> be</c><00:18:34.799><c> defined</c><00:18:35.280><c> generically</c>

00:18:35.990 --> 00:18:36.000 align:start position:0%
right now can be defined generically
 

00:18:36.000 --> 00:18:37.430 align:start position:0%
right now can be defined generically
just

00:18:37.430 --> 00:18:37.440 align:start position:0%
just
 

00:18:37.440 --> 00:18:40.850 align:start position:0%
just
yeah<00:18:37.980><c> like</c><00:18:38.520><c> the</c><00:18:39.240><c> other</c><00:18:39.419><c> cases</c><00:18:39.780><c> we</c><00:18:40.020><c> had</c><00:18:40.140><c> so</c><00:18:40.679><c> I</c>

00:18:40.850 --> 00:18:40.860 align:start position:0%
yeah like the other cases we had so I
 

00:18:40.860 --> 00:18:42.110 align:start position:0%
yeah like the other cases we had so I
mean<00:18:40.919><c> this</c><00:18:41.100><c> will</c><00:18:41.280><c> really</c><00:18:41.460><c> reduce</c><00:18:41.700><c> the</c>

00:18:42.110 --> 00:18:42.120 align:start position:0%
mean this will really reduce the
 

00:18:42.120 --> 00:18:45.110 align:start position:0%
mean this will really reduce the
footprint<00:18:42.480><c> you</c><00:18:42.720><c> can</c><00:18:42.900><c> hear</c><00:18:43.860><c> could</c><00:18:44.400><c> also</c><00:18:44.820><c> then</c>

00:18:45.110 --> 00:18:45.120 align:start position:0%
footprint you can hear could also then
 

00:18:45.120 --> 00:18:47.150 align:start position:0%
footprint you can hear could also then
distinguish<00:18:46.020><c> between</c><00:18:46.200><c> types</c><00:18:46.740><c> that</c><00:18:46.919><c> are</c>

00:18:47.150 --> 00:18:47.160 align:start position:0%
distinguish between types that are
 

00:18:47.160 --> 00:18:48.770 align:start position:0%
distinguish between types that are
checked<00:18:47.820><c> arithmetic</c><00:18:48.240><c> and</c><00:18:48.360><c> unchecked</c>

00:18:48.770 --> 00:18:48.780 align:start position:0%
checked arithmetic and unchecked
 

00:18:48.780 --> 00:18:52.010 align:start position:0%
checked arithmetic and unchecked
arithmetic<00:18:49.260><c> by</c><00:18:50.100><c> having</c><00:18:50.880><c> very</c><00:18:51.360><c> few</c><00:18:51.600><c> functions</c>

00:18:52.010 --> 00:18:52.020 align:start position:0%
arithmetic by having very few functions
 

00:18:52.020 --> 00:18:56.690 align:start position:0%
arithmetic by having very few functions
that<00:18:52.200><c> are</c><00:18:52.320><c> generally</c><00:18:52.620><c> written</c><00:18:53.100><c> and</c><00:18:53.820><c> yeah</c>

00:18:56.690 --> 00:18:56.700 align:start position:0%
 
 

00:18:56.700 --> 00:19:01.090 align:start position:0%
 
so<00:18:57.179><c> yeah</c><00:18:57.419><c> but</c><00:18:57.780><c> not</c><00:18:58.140><c> to</c><00:18:58.440><c> give</c><00:18:58.740><c> to</c>

00:19:01.090 --> 00:19:01.100 align:start position:0%
so yeah but not to give to
 

00:19:01.100 --> 00:19:04.190 align:start position:0%
so yeah but not to give to
make<00:19:02.100><c> you</c><00:19:02.220><c> expect</c><00:19:02.400><c> this</c><00:19:02.700><c> to</c><00:19:02.880><c> happen</c><00:19:03.059><c> too</c><00:19:04.020><c> soon</c>

00:19:04.190 --> 00:19:04.200 align:start position:0%
make you expect this to happen too soon
 

00:19:04.200 --> 00:19:06.470 align:start position:0%
make you expect this to happen too soon
we<00:19:04.620><c> are</c><00:19:04.799><c> still</c><00:19:04.980><c> in</c><00:19:05.460><c> early</c><00:19:05.700><c> design</c><00:19:05.940><c> phase</c><00:19:06.299><c> for</c>

00:19:06.470 --> 00:19:06.480 align:start position:0%
we are still in early design phase for
 

00:19:06.480 --> 00:19:08.090 align:start position:0%
we are still in early design phase for
generics<00:19:06.900><c> there's</c><00:19:07.200><c> a</c><00:19:07.440><c> lot</c><00:19:07.500><c> of</c><00:19:07.620><c> questions</c><00:19:07.799><c> this</c>

00:19:08.090 --> 00:19:08.100 align:start position:0%
generics there's a lot of questions this
 

00:19:08.100 --> 00:19:11.029 align:start position:0%
generics there's a lot of questions this
is<00:19:08.280><c> a</c><00:19:08.460><c> very</c><00:19:08.580><c> complex</c><00:19:09.419><c> thing</c><00:19:09.660><c> to</c><00:19:09.900><c> do</c><00:19:10.020><c> and</c><00:19:10.799><c> a</c><00:19:10.919><c> very</c>

00:19:11.029 --> 00:19:11.039 align:start position:0%
is a very complex thing to do and a very
 

00:19:11.039 --> 00:19:13.250 align:start position:0%
is a very complex thing to do and a very
dangerous<00:19:11.340><c> thing</c><00:19:11.460><c> to</c><00:19:11.640><c> do</c><00:19:11.760><c> because</c><00:19:12.020><c> yeah</c><00:19:13.020><c> all</c>

00:19:13.250 --> 00:19:13.260 align:start position:0%
dangerous thing to do because yeah all
 

00:19:13.260 --> 00:19:14.690 align:start position:0%
dangerous thing to do because yeah all
of<00:19:13.440><c> this</c><00:19:13.559><c> needs</c><00:19:13.860><c> to</c><00:19:13.980><c> be</c><00:19:14.039><c> biologically</c><00:19:14.520><c> well</c>

00:19:14.690 --> 00:19:14.700 align:start position:0%
of this needs to be biologically well
 

00:19:14.700 --> 00:19:16.250 align:start position:0%
of this needs to be biologically well
defined<00:19:15.059><c> to</c><00:19:15.179><c> not</c><00:19:15.360><c> bite</c><00:19:15.600><c> in</c><00:19:15.720><c> the</c><00:19:15.900><c> back</c><00:19:15.960><c> in</c><00:19:16.140><c> the</c>

00:19:16.250 --> 00:19:16.260 align:start position:0%
defined to not bite in the back in the
 

00:19:16.260 --> 00:19:18.590 align:start position:0%
defined to not bite in the back in the
end<00:19:16.380><c> so</c><00:19:16.559><c> I</c><00:19:16.679><c> mean</c><00:19:16.860><c> we</c><00:19:17.220><c> will</c><00:19:17.460><c> take</c><00:19:17.820><c> some</c><00:19:18.059><c> time</c><00:19:18.299><c> to</c>

00:19:18.590 --> 00:19:18.600 align:start position:0%
end so I mean we will take some time to
 

00:19:18.600 --> 00:19:21.110 align:start position:0%
end so I mean we will take some time to
design<00:19:18.780><c> this</c><00:19:19.080><c> properly</c><00:19:19.500><c> and</c>

00:19:21.110 --> 00:19:21.120 align:start position:0%
design this properly and
 

00:19:21.120 --> 00:19:23.150 align:start position:0%
design this properly and
syntax<00:19:21.780><c> is</c><00:19:22.020><c> also</c><00:19:22.260><c> a</c><00:19:22.380><c> question</c><00:19:22.500><c> that's</c><00:19:22.799><c> very</c>

00:19:23.150 --> 00:19:23.160 align:start position:0%
syntax is also a question that's very
 

00:19:23.160 --> 00:19:25.130 align:start position:0%
syntax is also a question that's very
much<00:19:23.419><c> differing</c><00:19:24.419><c> opinions</c><00:19:24.780><c> on</c><00:19:24.900><c> how</c><00:19:25.020><c> the</c>

00:19:25.130 --> 00:19:25.140 align:start position:0%
much differing opinions on how the
 

00:19:25.140 --> 00:19:26.330 align:start position:0%
much differing opinions on how the
Syntax<00:19:25.380><c> for</c><00:19:25.559><c> these</c><00:19:25.740><c> kinds</c><00:19:25.980><c> of</c><00:19:25.980><c> things</c><00:19:26.160><c> will</c>

00:19:26.330 --> 00:19:26.340 align:start position:0%
Syntax for these kinds of things will
 

00:19:26.340 --> 00:19:27.890 align:start position:0%
Syntax for these kinds of things will
end<00:19:26.580><c> up</c><00:19:26.700><c> being</c><00:19:26.820><c> I'm</c><00:19:27.120><c> not</c><00:19:27.299><c> that</c><00:19:27.419><c> concerned</c><00:19:27.780><c> by</c>

00:19:27.890 --> 00:19:27.900 align:start position:0%
end up being I'm not that concerned by
 

00:19:27.900 --> 00:19:29.690 align:start position:0%
end up being I'm not that concerned by
that<00:19:28.020><c> now</c><00:19:28.200><c> I</c><00:19:28.799><c> would</c><00:19:28.919><c> first</c><00:19:29.160><c> want</c><00:19:29.340><c> to</c><00:19:29.520><c> get</c><00:19:29.640><c> the</c>

00:19:29.690 --> 00:19:29.700 align:start position:0%
that now I would first want to get the
 

00:19:29.700 --> 00:19:31.970 align:start position:0%
that now I would first want to get the
semantics<00:19:30.120><c> right</c><00:19:30.299><c> but</c><00:19:30.600><c> eventually</c><00:19:31.440><c> we</c><00:19:31.679><c> also</c>

00:19:31.970 --> 00:19:31.980 align:start position:0%
semantics right but eventually we also
 

00:19:31.980 --> 00:19:33.650 align:start position:0%
semantics right but eventually we also
need<00:19:32.160><c> a</c><00:19:32.280><c> good</c><00:19:32.400><c> Syntax</c><00:19:32.700><c> for</c><00:19:32.880><c> it</c>

00:19:33.650 --> 00:19:33.660 align:start position:0%
need a good Syntax for it
 

00:19:33.660 --> 00:19:36.110 align:start position:0%
need a good Syntax for it
and<00:19:34.260><c> yeah</c><00:19:34.380><c> what</c><00:19:34.740><c> I</c><00:19:34.919><c> just</c><00:19:35.039><c> said</c><00:19:35.220><c> we</c><00:19:35.640><c> need</c><00:19:35.820><c> to</c>

00:19:36.110 --> 00:19:36.120 align:start position:0%
and yeah what I just said we need to
 

00:19:36.120 --> 00:19:37.850 align:start position:0%
and yeah what I just said we need to
decide<00:19:36.419><c> what</c><00:19:36.600><c> to</c><00:19:36.720><c> do</c><00:19:36.840><c> with</c><00:19:37.080><c> this</c><00:19:37.440><c> trade-off</c>

00:19:37.850 --> 00:19:37.860 align:start position:0%
decide what to do with this trade-off
 

00:19:37.860 --> 00:19:40.430 align:start position:0%
decide what to do with this trade-off
between<00:19:38.160><c> making</c><00:19:38.940><c> this</c><00:19:39.419><c> the</c><00:19:39.720><c> language</c><00:19:40.080><c> really</c>

00:19:40.430 --> 00:19:40.440 align:start position:0%
between making this the language really
 

00:19:40.440 --> 00:19:42.409 align:start position:0%
between making this the language really
self-defined<00:19:41.100><c> in</c><00:19:41.280><c> the</c><00:19:41.460><c> in</c><00:19:41.760><c> the</c><00:19:41.940><c> very</c><00:19:42.059><c> deepest</c>

00:19:42.409 --> 00:19:42.419 align:start position:0%
self-defined in the in the very deepest
 

00:19:42.419 --> 00:19:45.049 align:start position:0%
self-defined in the in the very deepest
sense<00:19:42.600><c> or</c><00:19:43.440><c> to</c><00:19:43.620><c> have</c><00:19:43.799><c> some</c><00:19:44.160><c> fixed</c><00:19:44.700><c> functions</c>

00:19:45.049 --> 00:19:45.059 align:start position:0%
sense or to have some fixed functions
 

00:19:45.059 --> 00:19:47.570 align:start position:0%
sense or to have some fixed functions
which<00:19:45.900><c> are</c><00:19:46.260><c> fixed</c><00:19:46.559><c> in</c><00:19:46.620><c> the</c><00:19:46.799><c> compiler</c><00:19:47.220><c> which</c>

00:19:47.570 --> 00:19:47.580 align:start position:0%
which are fixed in the compiler which
 

00:19:47.580 --> 00:19:50.029 align:start position:0%
which are fixed in the compiler which
means<00:19:48.120><c> we</c><00:19:48.299><c> can</c><00:19:48.419><c> assume</c><00:19:48.720><c> that</c><00:19:48.840><c> semantics</c>

00:19:50.029 --> 00:19:50.039 align:start position:0%
means we can assume that semantics
 

00:19:50.039 --> 00:19:52.250 align:start position:0%
means we can assume that semantics
or<00:19:50.640><c> there</c><00:19:51.059><c> are</c><00:19:51.179><c> compromises</c><00:19:51.780><c> between</c><00:19:51.960><c> that</c>

00:19:52.250 --> 00:19:52.260 align:start position:0%
or there are compromises between that
 

00:19:52.260 --> 00:19:55.070 align:start position:0%
or there are compromises between that
but<00:19:52.559><c> we'll</c><00:19:53.039><c> see</c>

00:19:55.070 --> 00:19:55.080 align:start position:0%
but we'll see
 

00:19:55.080 --> 00:19:58.970 align:start position:0%
but we'll see
so<00:19:55.500><c> yeah</c><00:19:55.820><c> to</c><00:19:56.820><c> summarize</c><00:19:57.539><c> uh</c><00:19:58.500><c> what</c><00:19:58.679><c> I</c><00:19:58.860><c> was</c>

00:19:58.970 --> 00:19:58.980 align:start position:0%
so yeah to summarize uh what I was
 

00:19:58.980 --> 00:20:01.130 align:start position:0%
so yeah to summarize uh what I was
talking<00:19:59.520><c> about</c><00:19:59.700><c> and</c><00:20:00.299><c> what</c><00:20:00.539><c> I</c><00:20:00.720><c> wasn't</c><00:20:00.900><c> talking</c>

00:20:01.130 --> 00:20:01.140 align:start position:0%
talking about and what I wasn't talking
 

00:20:01.140 --> 00:20:03.830 align:start position:0%
talking about and what I wasn't talking
about<00:20:01.320><c> we</c><00:20:01.679><c> will</c><00:20:01.919><c> still</c><00:20:02.100><c> do</c><00:20:02.340><c> hopefully</c>

00:20:03.830 --> 00:20:03.840 align:start position:0%
about we will still do hopefully
 

00:20:03.840 --> 00:20:07.190 align:start position:0%
about we will still do hopefully
we<00:20:04.380><c> will</c><00:20:04.559><c> in</c><00:20:04.740><c> the</c><00:20:04.860><c> future</c><00:20:05.419><c> try</c><00:20:06.419><c> to</c><00:20:06.600><c> allow</c><00:20:06.900><c> more</c>

00:20:07.190 --> 00:20:07.200 align:start position:0%
we will in the future try to allow more
 

00:20:07.200 --> 00:20:09.230 align:start position:0%
we will in the future try to allow more
pre-competation<00:20:07.980><c> either</c><00:20:08.700><c> in</c><00:20:09.120><c> the</c>

00:20:09.230 --> 00:20:09.240 align:start position:0%
pre-competation either in the
 

00:20:09.240 --> 00:20:11.390 align:start position:0%
pre-competation either in the
Constructor<00:20:09.539><c> by</c><00:20:09.840><c> the</c><00:20:09.960><c> coated</c><00:20:10.140><c> location</c><00:20:10.500><c> or</c><00:20:11.160><c> in</c>

00:20:11.390 --> 00:20:11.400 align:start position:0%
Constructor by the coated location or in
 

00:20:11.400 --> 00:20:12.830 align:start position:0%
Constructor by the coated location or in
compile<00:20:11.760><c> time</c><00:20:12.000><c> by</c><00:20:12.240><c> compiler</c><00:20:12.600><c> constant</c>

00:20:12.830 --> 00:20:12.840 align:start position:0%
compile time by compiler constant
 

00:20:12.840 --> 00:20:14.870 align:start position:0%
compile time by compiler constant
expression<00:20:13.200><c> evaluation</c><00:20:13.679><c> which</c><00:20:14.460><c> is</c><00:20:14.640><c> something</c>

00:20:14.870 --> 00:20:14.880 align:start position:0%
expression evaluation which is something
 

00:20:14.880 --> 00:20:16.850 align:start position:0%
expression evaluation which is something
yeah<00:20:15.539><c> a</c><00:20:15.780><c> lot</c><00:20:15.840><c> of</c><00:20:15.960><c> people</c><00:20:16.080><c> have</c><00:20:16.260><c> asked</c><00:20:16.559><c> for</c><00:20:16.679><c> and</c>

00:20:16.850 --> 00:20:16.860 align:start position:0%
yeah a lot of people have asked for and
 

00:20:16.860 --> 00:20:19.909 align:start position:0%
yeah a lot of people have asked for and
which<00:20:17.100><c> obviously</c><00:20:17.460><c> makes</c><00:20:17.760><c> it</c><00:20:18.000><c> easier</c><00:20:18.900><c> to</c><00:20:19.440><c> write</c>

00:20:19.909 --> 00:20:19.919 align:start position:0%
which obviously makes it easier to write
 

00:20:19.919 --> 00:20:21.529 align:start position:0%
which obviously makes it easier to write
things<00:20:20.340><c> in</c><00:20:20.700><c> that</c><00:20:20.880><c> you</c><00:20:21.059><c> don't</c><00:20:21.240><c> need</c><00:20:21.360><c> for</c>

00:20:21.529 --> 00:20:21.539 align:start position:0%
things in that you don't need for
 

00:20:21.539 --> 00:20:23.990 align:start position:0%
things in that you don't need for
example<00:20:21.840><c> magic</c><00:20:22.320><c> constants</c><00:20:22.980><c> embedded</c><00:20:23.760><c> in</c><00:20:23.880><c> a</c>

00:20:23.990 --> 00:20:24.000 align:start position:0%
example magic constants embedded in a
 

00:20:24.000 --> 00:20:26.870 align:start position:0%
example magic constants embedded in a
contract<00:20:24.299><c> or</c><00:20:24.539><c> whatever</c><00:20:24.720><c> because</c><00:20:25.080><c> you</c><00:20:25.440><c> can</c><00:20:25.919><c> uh</c>

00:20:26.870 --> 00:20:26.880 align:start position:0%
contract or whatever because you can uh
 

00:20:26.880 --> 00:20:29.330 align:start position:0%
contract or whatever because you can uh
compute<00:20:27.539><c> them</c><00:20:27.660><c> on</c><00:20:27.900><c> the</c><00:20:28.020><c> fly</c><00:20:28.200><c> without</c><00:20:29.039><c> it</c>

00:20:29.330 --> 00:20:29.340 align:start position:0%
compute them on the fly without it
 

00:20:29.340 --> 00:20:30.590 align:start position:0%
compute them on the fly without it
costing

00:20:30.590 --> 00:20:30.600 align:start position:0%
costing
 

00:20:30.600 --> 00:20:33.169 align:start position:0%
costing
and<00:20:31.140><c> he</c><00:20:31.320><c> had</c><00:20:31.440><c> a</c><00:20:31.679><c> huge</c>

00:20:33.169 --> 00:20:33.179 align:start position:0%
and he had a huge
 

00:20:33.179 --> 00:20:35.390 align:start position:0%
and he had a huge
a<00:20:33.539><c> huge</c><00:20:34.080><c> topic</c><00:20:34.380><c> for</c><00:20:34.500><c> the</c><00:20:34.679><c> future</c><00:20:34.799><c> will</c><00:20:35.100><c> be</c><00:20:35.280><c> to</c>

00:20:35.390 --> 00:20:35.400 align:start position:0%
a huge topic for the future will be to
 

00:20:35.400 --> 00:20:36.830 align:start position:0%
a huge topic for the future will be to
make<00:20:35.580><c> the</c><00:20:35.760><c> language</c><00:20:35.940><c> extensible</c><00:20:36.600><c> and</c>

00:20:36.830 --> 00:20:36.840 align:start position:0%
make the language extensible and
 

00:20:36.840 --> 00:20:39.789 align:start position:0%
make the language extensible and
self-defining<00:20:37.440><c> by</c><00:20:37.740><c> means</c><00:20:38.100><c> of</c><00:20:38.780><c> improving</c>

00:20:39.789 --> 00:20:39.799 align:start position:0%
self-defining by means of improving
 

00:20:39.799 --> 00:20:41.990 align:start position:0%
self-defining by means of improving
user-defined<00:20:40.799><c> data</c><00:20:41.100><c> types</c>

00:20:41.990 --> 00:20:42.000 align:start position:0%
user-defined data types
 

00:20:42.000 --> 00:20:44.330 align:start position:0%
user-defined data types
pushing<00:20:42.600><c> the</c><00:20:42.720><c> standard</c><00:20:43.020><c> library</c><00:20:43.260><c> and</c><00:20:44.039><c> making</c>

00:20:44.330 --> 00:20:44.340 align:start position:0%
pushing the standard library and making
 

00:20:44.340 --> 00:20:46.850 align:start position:0%
pushing the standard library and making
a<00:20:44.640><c> move</c><00:20:44.700><c> for</c><00:20:44.940><c> generics</c>

00:20:46.850 --> 00:20:46.860 align:start position:0%
a move for generics
 

00:20:46.860 --> 00:20:49.430 align:start position:0%
a move for generics
but<00:20:47.340><c> we</c><00:20:47.460><c> also</c><00:20:47.760><c> of</c><00:20:47.880><c> course</c><00:20:48.000><c> can't</c><00:20:48.480><c> just</c><00:20:49.080><c> ignore</c>

00:20:49.430 --> 00:20:49.440 align:start position:0%
but we also of course can't just ignore
 

00:20:49.440 --> 00:20:51.470 align:start position:0%
but we also of course can't just ignore
is<00:20:49.799><c> that</c><00:20:50.100><c> we're</c><00:20:50.280><c> still</c><00:20:50.520><c> wasting</c><00:20:51.179><c> a</c><00:20:51.240><c> lot</c><00:20:51.360><c> of</c>

00:20:51.470 --> 00:20:51.480 align:start position:0%
is that we're still wasting a lot of
 

00:20:51.480 --> 00:20:54.830 align:start position:0%
is that we're still wasting a lot of
memory<00:20:51.780><c> I</c><00:20:52.380><c> mean</c><00:20:52.820><c> whoever</c><00:20:53.820><c> has</c><00:20:54.000><c> used</c><00:20:54.240><c> memory</c>

00:20:54.830 --> 00:20:54.840 align:start position:0%
memory I mean whoever has used memory
 

00:20:54.840 --> 00:20:57.230 align:start position:0%
memory I mean whoever has used memory
and<00:20:55.020><c> solidity</c><00:20:55.440><c> will</c><00:20:56.160><c> know</c><00:20:56.460><c> that</c><00:20:56.700><c> yeah</c><00:20:56.880><c> we</c>

00:20:57.230 --> 00:20:57.240 align:start position:0%
and solidity will know that yeah we
 

00:20:57.240 --> 00:20:59.810 align:start position:0%
and solidity will know that yeah we
basically<00:20:57.539><c> don't</c><00:20:57.660><c> free</c><00:20:57.960><c> memory</c><00:20:58.320><c> which</c>

00:20:59.810 --> 00:20:59.820 align:start position:0%
basically don't free memory which
 

00:20:59.820 --> 00:21:01.430 align:start position:0%
basically don't free memory which
for<00:21:00.240><c> a</c><00:21:00.360><c> long</c><00:21:00.480><c> time</c>

00:21:01.430 --> 00:21:01.440 align:start position:0%
for a long time
 

00:21:01.440 --> 00:21:03.289 align:start position:0%
for a long time
wasn't<00:21:01.980><c> the</c><00:21:02.280><c> main</c><00:21:02.400><c> concern</c><00:21:02.760><c> but</c><00:21:03.059><c> in</c><00:21:03.179><c> the</c>

00:21:03.289 --> 00:21:03.299 align:start position:0%
wasn't the main concern but in the
 

00:21:03.299 --> 00:21:07.130 align:start position:0%
wasn't the main concern but in the
meantime<00:21:03.600><c> is</c><00:21:03.900><c> very</c><00:21:04.500><c> huge</c><00:21:04.980><c> pain</c><00:21:05.220><c> point</c><00:21:05.460><c> in</c><00:21:06.240><c> uh</c>

00:21:07.130 --> 00:21:07.140 align:start position:0%
meantime is very huge pain point in uh
 

00:21:07.140 --> 00:21:10.070 align:start position:0%
meantime is very huge pain point in uh
yeah<00:21:07.559><c> for</c><00:21:07.919><c> cost</c><00:21:08.520><c> of</c><00:21:08.760><c> contracts</c>

00:21:10.070 --> 00:21:10.080 align:start position:0%
yeah for cost of contracts
 

00:21:10.080 --> 00:21:12.770 align:start position:0%
yeah for cost of contracts
there<00:21:10.679><c> were</c><00:21:10.919><c> several</c><00:21:11.280><c> uh</c>

00:21:12.770 --> 00:21:12.780 align:start position:0%
there were several uh
 

00:21:12.780 --> 00:21:14.870 align:start position:0%
there were several uh
approaches<00:21:13.500><c> we</c><00:21:13.679><c> discussed</c><00:21:14.039><c> so</c><00:21:14.340><c> far</c><00:21:14.460><c> for</c>

00:21:14.870 --> 00:21:14.880 align:start position:0%
approaches we discussed so far for
 

00:21:14.880 --> 00:21:17.630 align:start position:0%
approaches we discussed so far for
improving<00:21:15.360><c> the</c><00:21:15.480><c> situation</c><00:21:15.840><c> there</c><00:21:16.200><c> we</c><00:21:16.980><c> a</c><00:21:17.460><c> long</c>

00:21:17.630 --> 00:21:17.640 align:start position:0%
improving the situation there we a long
 

00:21:17.640 --> 00:21:20.350 align:start position:0%
improving the situation there we a long
time<00:21:17.820><c> we</c>

00:21:20.350 --> 00:21:20.360 align:start position:0%
time we
 

00:21:20.360 --> 00:21:22.370 align:start position:0%
time we
wanted<00:21:21.360><c> to</c><00:21:21.539><c> deal</c><00:21:21.660><c> with</c><00:21:21.840><c> this</c><00:21:21.960><c> on</c><00:21:22.080><c> the</c><00:21:22.200><c> Dual</c>

00:21:22.370 --> 00:21:22.380 align:start position:0%
wanted to deal with this on the Dual
 

00:21:22.380 --> 00:21:24.049 align:start position:0%
wanted to deal with this on the Dual
level<00:21:22.559><c> it</c><00:21:22.860><c> turns</c><00:21:23.100><c> out</c><00:21:23.160><c> that</c><00:21:23.340><c> may</c><00:21:23.520><c> not</c><00:21:23.640><c> be</c><00:21:23.820><c> as</c>

00:21:24.049 --> 00:21:24.059 align:start position:0%
level it turns out that may not be as
 

00:21:24.059 --> 00:21:24.770 align:start position:0%
level it turns out that may not be as
simple

00:21:24.770 --> 00:21:24.780 align:start position:0%
simple
 

00:21:24.780 --> 00:21:26.330 align:start position:0%
simple
so<00:21:25.200><c> maybe</c><00:21:25.380><c> we</c><00:21:25.620><c> will</c><00:21:25.740><c> move</c><00:21:25.860><c> actually</c><00:21:26.100><c> to</c>

00:21:26.330 --> 00:21:26.340 align:start position:0%
so maybe we will move actually to
 

00:21:26.340 --> 00:21:28.850 align:start position:0%
so maybe we will move actually to
analyze<00:21:26.820><c> the</c><00:21:26.940><c> solidity</c><00:21:27.419><c> which</c><00:21:28.200><c> has</c><00:21:28.620><c> the</c>

00:21:28.850 --> 00:21:28.860 align:start position:0%
analyze the solidity which has the
 

00:21:28.860 --> 00:21:31.310 align:start position:0%
analyze the solidity which has the
properties<00:21:29.220><c> right</c><00:21:29.820><c> there</c><00:21:30.179><c> we</c><00:21:30.720><c> shied</c><00:21:31.020><c> our</c><00:21:31.200><c> way</c>

00:21:31.310 --> 00:21:31.320 align:start position:0%
properties right there we shied our way
 

00:21:31.320 --> 00:21:33.169 align:start position:0%
properties right there we shied our way
of<00:21:31.380><c> doing</c><00:21:31.559><c> that</c><00:21:31.799><c> for</c><00:21:32.159><c> facility</c><00:21:32.760><c> being</c><00:21:33.000><c> the</c>

00:21:33.169 --> 00:21:33.179 align:start position:0%
of doing that for facility being the
 

00:21:33.179 --> 00:21:34.850 align:start position:0%
of doing that for facility being the
more<00:21:33.299><c> complex</c><00:21:33.539><c> thing</c><00:21:33.840><c> to</c><00:21:34.020><c> analyze</c><00:21:34.440><c> but</c><00:21:34.620><c> maybe</c>

00:21:34.850 --> 00:21:34.860 align:start position:0%
more complex thing to analyze but maybe
 

00:21:34.860 --> 00:21:35.870 align:start position:0%
more complex thing to analyze but maybe
it's<00:21:35.100><c> fine</c>

00:21:35.870 --> 00:21:35.880 align:start position:0%
it's fine
 

00:21:35.880 --> 00:21:37.190 align:start position:0%
it's fine
we<00:21:36.299><c> will</c><00:21:36.480><c> see</c>

00:21:37.190 --> 00:21:37.200 align:start position:0%
we will see
 

00:21:37.200 --> 00:21:39.289 align:start position:0%
we will see
and<00:21:37.679><c> yeah</c><00:21:37.799><c> we</c><00:21:37.980><c> will</c><00:21:38.159><c> also</c><00:21:38.460><c> of</c><00:21:38.820><c> course</c><00:21:38.940><c> try</c><00:21:39.179><c> to</c>

00:21:39.289 --> 00:21:39.299 align:start position:0%
and yeah we will also of course try to
 

00:21:39.299 --> 00:21:40.730 align:start position:0%
and yeah we will also of course try to
move<00:21:39.480><c> completely</c><00:21:39.840><c> towards</c><00:21:40.140><c> via</c><00:21:40.380><c> our</c><00:21:40.559><c> core</c>

00:21:40.730 --> 00:21:40.740 align:start position:0%
move completely towards via our core
 

00:21:40.740 --> 00:21:43.070 align:start position:0%
move completely towards via our core
generation<00:21:41.159><c> but</c><00:21:41.580><c> we</c><00:21:41.700><c> have</c><00:21:41.880><c> some</c><00:21:42.120><c> burdens</c>

00:21:43.070 --> 00:21:43.080 align:start position:0%
generation but we have some burdens
 

00:21:43.080 --> 00:21:45.470 align:start position:0%
generation but we have some burdens
there<00:21:43.320><c> to</c><00:21:43.559><c> overcome</c><00:21:44.039><c> still</c><00:21:44.820><c> like</c><00:21:45.120><c> the</c>

00:21:45.470 --> 00:21:45.480 align:start position:0%
there to overcome still like the
 

00:21:45.480 --> 00:21:47.810 align:start position:0%
there to overcome still like the
performance<00:21:46.260><c> of</c><00:21:46.440><c> the</c><00:21:46.559><c> optimizer</c>

00:21:47.810 --> 00:21:47.820 align:start position:0%
performance of the optimizer
 

00:21:47.820 --> 00:21:50.810 align:start position:0%
performance of the optimizer
better<00:21:48.299><c> tooling</c><00:21:48.780><c> support</c><00:21:49.159><c> you</c><00:21:50.159><c> still</c><00:21:50.460><c> need</c><00:21:50.700><c> to</c>

00:21:50.810 --> 00:21:50.820 align:start position:0%
better tooling support you still need to
 

00:21:50.820 --> 00:21:52.010 align:start position:0%
better tooling support you still need to
Define<00:21:50.940><c> got</c><00:21:51.179><c> the</c><00:21:51.360><c> background</c><00:21:51.600><c> data</c><00:21:51.840><c> for</c><00:21:51.900><c> the</c>

00:21:52.010 --> 00:21:52.020 align:start position:0%
Define got the background data for the
 

00:21:52.020 --> 00:21:53.390 align:start position:0%
Define got the background data for the
tooling<00:21:52.320><c> tooling</c><00:21:52.620><c> to</c><00:21:52.740><c> consume</c><00:21:53.100><c> to</c><00:21:53.280><c> actually</c>

00:21:53.390 --> 00:21:53.400 align:start position:0%
tooling tooling to consume to actually
 

00:21:53.400 --> 00:21:55.970 align:start position:0%
tooling tooling to consume to actually
make<00:21:53.640><c> the</c><00:21:53.820><c> experience</c><00:21:54.120><c> as</c><00:21:54.659><c> nice</c><00:21:55.260><c> as</c><00:21:55.620><c> with</c><00:21:55.860><c> the</c>

00:21:55.970 --> 00:21:55.980 align:start position:0%
make the experience as nice as with the
 

00:21:55.980 --> 00:21:58.130 align:start position:0%
make the experience as nice as with the
Legacy<00:21:56.220><c> code</c><00:21:56.400><c> generation</c><00:21:56.820><c> the</c><00:21:57.659><c> details</c><00:21:58.020><c> there</c>

00:21:58.130 --> 00:21:58.140 align:start position:0%
Legacy code generation the details there
 

00:21:58.140 --> 00:21:59.870 align:start position:0%
Legacy code generation the details there
would<00:21:58.320><c> be</c><00:21:58.440><c> that</c><00:21:58.620><c> the</c><00:21:58.799><c> tooling</c><00:21:59.220><c> expects</c>

00:21:59.870 --> 00:21:59.880 align:start position:0%
would be that the tooling expects
 

00:21:59.880 --> 00:22:02.390 align:start position:0%
would be that the tooling expects
certain<00:22:00.120><c> patterns</c><00:22:00.720><c> to</c><00:22:00.840><c> remain</c><00:22:01.140><c> in</c><00:22:01.620><c> the</c><00:22:01.799><c> in</c><00:22:02.280><c> the</c>

00:22:02.390 --> 00:22:02.400 align:start position:0%
certain patterns to remain in the in the
 

00:22:02.400 --> 00:22:04.310 align:start position:0%
certain patterns to remain in the in the
bytecloud<00:22:02.880><c> in</c><00:22:03.000><c> the</c><00:22:03.120><c> end</c><00:22:03.240><c> whereas</c><00:22:04.020><c> the</c><00:22:04.200><c> new</c>

00:22:04.310 --> 00:22:04.320 align:start position:0%
bytecloud in the end whereas the new
 

00:22:04.320 --> 00:22:06.470 align:start position:0%
bytecloud in the end whereas the new
optimization<00:22:04.799><c> pipeline</c><00:22:05.400><c> will</c><00:22:05.820><c> mess</c><00:22:06.059><c> them</c><00:22:06.299><c> up</c>

00:22:06.470 --> 00:22:06.480 align:start position:0%
optimization pipeline will mess them up
 

00:22:06.480 --> 00:22:09.350 align:start position:0%
optimization pipeline will mess them up
by<00:22:07.200><c> optimizing</c><00:22:07.860><c> better</c><00:22:08.100><c> but</c><00:22:08.700><c> tooling</c><00:22:09.120><c> needs</c>

00:22:09.350 --> 00:22:09.360 align:start position:0%
by optimizing better but tooling needs
 

00:22:09.360 --> 00:22:11.090 align:start position:0%
by optimizing better but tooling needs
to<00:22:09.419><c> understand</c><00:22:09.539><c> that</c><00:22:09.840><c> we</c><00:22:10.140><c> need</c><00:22:10.440><c> to</c><00:22:10.559><c> Output</c>

00:22:11.090 --> 00:22:11.100 align:start position:0%
to understand that we need to Output
 

00:22:11.100 --> 00:22:13.070 align:start position:0%
to understand that we need to Output
data<00:22:11.580><c> for</c><00:22:12.059><c> it</c><00:22:12.360><c> being</c><00:22:12.539><c> able</c><00:22:12.780><c> to</c><00:22:12.900><c> understand</c>

00:22:13.070 --> 00:22:13.080 align:start position:0%
data for it being able to understand
 

00:22:13.080 --> 00:22:14.990 align:start position:0%
data for it being able to understand
that

00:22:14.990 --> 00:22:15.000 align:start position:0%
that
 

00:22:15.000 --> 00:22:17.330 align:start position:0%
that
but<00:22:15.480><c> yeah</c><00:22:15.659><c> that's</c><00:22:16.500><c> hopefully</c><00:22:16.980><c> you've</c><00:22:17.159><c> ever</c>

00:22:17.330 --> 00:22:17.340 align:start position:0%
but yeah that's hopefully you've ever
 

00:22:17.340 --> 00:22:18.649 align:start position:0%
but yeah that's hopefully you've ever
had<00:22:17.520><c> it</c>

00:22:18.649 --> 00:22:18.659 align:start position:0%
had it
 

00:22:18.659 --> 00:22:21.590 align:start position:0%
had it
and<00:22:19.200><c> yeah</c><00:22:19.440><c> I'll</c><00:22:20.280><c> close</c><00:22:20.820><c> with</c><00:22:21.120><c> that</c><00:22:21.240><c> if</c><00:22:21.539><c> you</c>

00:22:21.590 --> 00:22:21.600 align:start position:0%
and yeah I'll close with that if you
 

00:22:21.600 --> 00:22:22.430 align:start position:0%
and yeah I'll close with that if you
want

00:22:22.430 --> 00:22:22.440 align:start position:0%
want
 

00:22:22.440 --> 00:22:24.970 align:start position:0%
want
to<00:22:22.860><c> give</c><00:22:22.980><c> us</c><00:22:23.159><c> any</c><00:22:23.340><c> feedback</c><00:22:23.760><c> help</c><00:22:24.240><c> us</c><00:22:24.480><c> with</c>

00:22:24.970 --> 00:22:24.980 align:start position:0%
to give us any feedback help us with
 

00:22:24.980 --> 00:22:28.490 align:start position:0%
to give us any feedback help us with
designing<00:22:25.980><c> generics</c><00:22:26.460><c> or</c><00:22:27.000><c> criticize</c><00:22:27.840><c> what</c><00:22:28.320><c> we</c>

00:22:28.490 --> 00:22:28.500 align:start position:0%
designing generics or criticize what we
 

00:22:28.500 --> 00:22:29.990 align:start position:0%
designing generics or criticize what we
are<00:22:28.620><c> planning</c><00:22:28.919><c> and</c><00:22:29.039><c> saying</c><00:22:29.340><c> we</c><00:22:29.520><c> are</c><00:22:29.640><c> crazy</c><00:22:29.760><c> to</c>

00:22:29.990 --> 00:22:30.000 align:start position:0%
are planning and saying we are crazy to
 

00:22:30.000 --> 00:22:31.789 align:start position:0%
are planning and saying we are crazy to
do<00:22:30.059><c> with</c><00:22:30.179><c> any</c><00:22:30.360><c> of</c><00:22:30.539><c> that</c><00:22:30.720><c> reach</c><00:22:31.440><c> out</c><00:22:31.500><c> to</c><00:22:31.679><c> us</c>

00:22:31.789 --> 00:22:31.799 align:start position:0%
do with any of that reach out to us
 

00:22:31.799 --> 00:22:34.190 align:start position:0%
do with any of that reach out to us
that's<00:22:32.460><c> the</c><00:22:32.640><c> channels</c><00:22:33.000><c> we've</c><00:22:33.179><c> just</c><00:22:33.480><c> said</c>

00:22:34.190 --> 00:22:34.200 align:start position:0%
that's the channels we've just said
 

00:22:34.200 --> 00:22:37.610 align:start position:0%
that's the channels we've just said
and<00:22:34.799><c> yeah</c><00:22:36.120><c> thank</c><00:22:36.600><c> you</c>

00:22:37.610 --> 00:22:37.620 align:start position:0%
and yeah thank you
 

00:22:37.620 --> 00:22:40.250 align:start position:0%
and yeah thank you
yeah<00:22:38.159><c> it</c><00:22:39.000><c> used</c><00:22:39.179><c> to</c><00:22:39.360><c> be</c><00:22:39.419><c> the</c><00:22:39.539><c> case</c><00:22:39.720><c> that</c><00:22:40.080><c> the</c>

00:22:40.250 --> 00:22:40.260 align:start position:0%
yeah it used to be the case that the
 

00:22:40.260 --> 00:22:42.350 align:start position:0%
yeah it used to be the case that the
compiler<00:22:40.980><c> has</c><00:22:41.100><c> two</c><00:22:41.280><c> back</c><00:22:41.520><c> end</c><00:22:41.640><c> paths</c><00:22:42.059><c> at</c><00:22:42.299><c> the</c>

00:22:42.350 --> 00:22:42.360 align:start position:0%
compiler has two back end paths at the
 

00:22:42.360 --> 00:22:43.789 align:start position:0%
compiler has two back end paths at the
moment<00:22:42.600><c> so</c><00:22:42.780><c> I</c><00:22:42.900><c> mean</c><00:22:43.020><c> it</c><00:22:43.200><c> used</c><00:22:43.320><c> to</c><00:22:43.440><c> be</c><00:22:43.559><c> the</c><00:22:43.620><c> case</c>

00:22:43.789 --> 00:22:43.799 align:start position:0%
moment so I mean it used to be the case
 

00:22:43.799 --> 00:22:45.470 align:start position:0%
moment so I mean it used to be the case
that<00:22:43.980><c> solidity</c><00:22:44.340><c> was</c><00:22:44.580><c> directly</c><00:22:44.940><c> translated</c><00:22:45.299><c> to</c>

00:22:45.470 --> 00:22:45.480 align:start position:0%
that solidity was directly translated to
 

00:22:45.480 --> 00:22:48.470 align:start position:0%
that solidity was directly translated to
evm<00:22:45.840><c> bytecode</c><00:22:46.520><c> and</c><00:22:47.520><c> then</c><00:22:47.700><c> only</c><00:22:47.820><c> of</c><00:22:48.059><c> the</c><00:22:48.179><c> Omni</c>

00:22:48.470 --> 00:22:48.480 align:start position:0%
evm bytecode and then only of the Omni
 

00:22:48.480 --> 00:22:51.190 align:start position:0%
evm bytecode and then only of the Omni
optimizations<00:22:48.900><c> that</c><00:22:49.140><c> took</c><00:22:49.380><c> place</c><00:22:49.559><c> were</c>

00:22:51.190 --> 00:22:51.200 align:start position:0%
optimizations that took place were
 

00:22:51.200 --> 00:22:54.770 align:start position:0%
optimizations that took place were
uh<00:22:52.200><c> on</c><00:22:52.620><c> the</c><00:22:52.740><c> bytecode</c><00:22:53.159><c> level</c>

00:22:54.770 --> 00:22:54.780 align:start position:0%
uh on the bytecode level
 

00:22:54.780 --> 00:22:57.649 align:start position:0%
uh on the bytecode level
for<00:22:55.200><c> the</c><00:22:55.440><c> past</c><00:22:55.559><c> years</c><00:22:55.919><c> we</c><00:22:56.280><c> have</c><00:22:56.460><c> uh</c><00:22:57.059><c> moved</c><00:22:57.539><c> away</c>

00:22:57.649 --> 00:22:57.659 align:start position:0%
for the past years we have uh moved away
 

00:22:57.659 --> 00:22:59.330 align:start position:0%
for the past years we have uh moved away
from<00:22:57.900><c> that</c><00:22:58.080><c> and</c><00:22:58.260><c> have</c><00:22:58.440><c> a</c><00:22:58.559><c> different</c><00:22:58.740><c> new</c><00:22:59.100><c> code</c>

00:22:59.330 --> 00:22:59.340 align:start position:0%
from that and have a different new code
 

00:22:59.340 --> 00:23:00.890 align:start position:0%
from that and have a different new code
generation<00:22:59.700><c> pipeline</c><00:23:00.240><c> that</c><00:23:00.539><c> translates</c>

00:23:00.890 --> 00:23:00.900 align:start position:0%
generation pipeline that translates
 

00:23:00.900 --> 00:23:02.690 align:start position:0%
generation pipeline that translates
solidity<00:23:01.380><c> first</c><00:23:01.559><c> into</c><00:23:01.799><c> Yule</c><00:23:02.280><c> into</c><00:23:02.460><c> an</c>

00:23:02.690 --> 00:23:02.700 align:start position:0%
solidity first into Yule into an
 

00:23:02.700 --> 00:23:04.730 align:start position:0%
solidity first into Yule into an
immediate<00:23:03.120><c> language</c><00:23:03.360><c> which</c><00:23:03.960><c> preserves</c><00:23:04.559><c> some</c>

00:23:04.730 --> 00:23:04.740 align:start position:0%
immediate language which preserves some
 

00:23:04.740 --> 00:23:06.049 align:start position:0%
immediate language which preserves some
structure<00:23:05.039><c> and</c><00:23:05.159><c> which</c><00:23:05.340><c> allows</c><00:23:05.700><c> for</c><00:23:05.880><c> more</c>

00:23:06.049 --> 00:23:06.059 align:start position:0%
structure and which allows for more
 

00:23:06.059 --> 00:23:08.630 align:start position:0%
structure and which allows for more
complex<00:23:06.360><c> optimizations</c><00:23:07.260><c> for</c><00:23:07.679><c> inlining</c><00:23:08.520><c> more</c>

00:23:08.630 --> 00:23:08.640 align:start position:0%
complex optimizations for inlining more
 

00:23:08.640 --> 00:23:13.250 align:start position:0%
complex optimizations for inlining more
analysis<00:23:09.240><c> uh</c><00:23:10.559><c> and</c><00:23:10.980><c> then</c><00:23:11.100><c> only</c><00:23:11.400><c> to</c><00:23:11.880><c> uh</c>

00:23:13.250 --> 00:23:13.260 align:start position:0%
analysis uh and then only to uh
 

00:23:13.260 --> 00:23:16.610 align:start position:0%
analysis uh and then only to uh
translate<00:23:13.799><c> Yule</c><00:23:14.460><c> to</c><00:23:14.659><c> evm</c><00:23:15.659><c> bytecode</c><00:23:16.140><c> as</c><00:23:16.440><c> a</c>

00:23:16.610 --> 00:23:16.620 align:start position:0%
translate Yule to evm bytecode as a
 

00:23:16.620 --> 00:23:19.370 align:start position:0%
translate Yule to evm bytecode as a
second<00:23:16.740><c> step</c><00:23:17.039><c> which</c><00:23:18.000><c> can</c><00:23:18.360><c> reduce</c><00:23:18.600><c> gas</c><00:23:18.960><c> costs</c>

00:23:19.370 --> 00:23:19.380 align:start position:0%
second step which can reduce gas costs
 

00:23:19.380 --> 00:23:21.409 align:start position:0%
second step which can reduce gas costs
significantly<00:23:19.860><c> in</c><00:23:20.100><c> some</c><00:23:20.220><c> cases</c><00:23:20.580><c> in</c><00:23:21.360><c> some</c>

00:23:21.409 --> 00:23:21.419 align:start position:0%
significantly in some cases in some
 

00:23:21.419 --> 00:23:25.669 align:start position:0%
significantly in some cases in some
cases<00:23:21.720><c> it's</c><00:23:22.020><c> the</c><00:23:22.320><c> same</c><00:23:22.440><c> as</c><00:23:22.620><c> before</c><00:23:22.860><c> but</c><00:23:23.340><c> yeah</c>

00:23:25.669 --> 00:23:25.679 align:start position:0%
cases it's the same as before but yeah
 

00:23:25.679 --> 00:23:28.010 align:start position:0%
cases it's the same as before but yeah
and<00:23:26.159><c> yeah</c><00:23:26.340><c> the</c><00:23:26.580><c> new</c><00:23:26.700><c> pipeline</c><00:23:27.120><c> the</c><00:23:27.299><c> Via</c><00:23:27.480><c> IRS</c>

00:23:28.010 --> 00:23:28.020 align:start position:0%
and yeah the new pipeline the Via IRS
 

00:23:28.020 --> 00:23:29.930 align:start position:0%
and yeah the new pipeline the Via IRS
via<00:23:28.380><c> the</c><00:23:28.559><c> intermediate</c><00:23:28.980><c> representation</c><00:23:29.520><c> so</c>

00:23:29.930 --> 00:23:29.940 align:start position:0%
via the intermediate representation so
 

00:23:29.940 --> 00:23:31.970 align:start position:0%
via the intermediate representation so
compilation<00:23:30.360><c> via</c><00:23:30.720><c> you</c>

00:23:31.970 --> 00:23:31.980 align:start position:0%
compilation via you
 

00:23:31.980 --> 00:23:33.470 align:start position:0%
compilation via you
thank<00:23:32.340><c> you</c><00:23:32.400><c> for</c><00:23:32.520><c> the</c><00:23:32.640><c> talk</c><00:23:32.820><c> you</c><00:23:33.240><c> mentioned</c>

00:23:33.470 --> 00:23:33.480 align:start position:0%
thank you for the talk you mentioned
 

00:23:33.480 --> 00:23:34.730 align:start position:0%
thank you for the talk you mentioned
generics<00:23:33.960><c> I'm</c><00:23:34.140><c> wondering</c><00:23:34.380><c> if</c><00:23:34.500><c> you</c><00:23:34.620><c> could</c>

00:23:34.730 --> 00:23:34.740 align:start position:0%
generics I'm wondering if you could
 

00:23:34.740 --> 00:23:35.510 align:start position:0%
generics I'm wondering if you could
speak<00:23:34.860><c> to</c><00:23:34.980><c> how</c><00:23:35.100><c> you're</c><00:23:35.220><c> planning</c><00:23:35.400><c> on</c>

00:23:35.510 --> 00:23:35.520 align:start position:0%
speak to how you're planning on
 

00:23:35.520 --> 00:23:36.710 align:start position:0%
speak to how you're planning on
implementing<00:23:35.940><c> that</c><00:23:36.120><c> whether</c><00:23:36.299><c> you're</c><00:23:36.539><c> going</c>

00:23:36.710 --> 00:23:36.720 align:start position:0%
implementing that whether you're going
 

00:23:36.720 --> 00:23:39.470 align:start position:0%
implementing that whether you're going
through<00:23:37.220><c> monomorphization</c><00:23:38.220><c> because</c><00:23:39.000><c> I</c><00:23:39.299><c> worry</c>

00:23:39.470 --> 00:23:39.480 align:start position:0%
through monomorphization because I worry
 

00:23:39.480 --> 00:23:42.230 align:start position:0%
through monomorphization because I worry
that<00:23:39.900><c> the</c><00:23:40.260><c> code</c><00:23:40.500><c> contract</c><00:23:40.980><c> size</c><00:23:41.280><c> will</c><00:23:41.700><c> balloon</c>

00:23:42.230 --> 00:23:42.240 align:start position:0%
that the code contract size will balloon
 

00:23:42.240 --> 00:23:45.110 align:start position:0%
that the code contract size will balloon
if<00:23:43.020><c> you</c><00:23:43.140><c> start</c><00:23:43.320><c> you</c><00:23:43.799><c> know</c><00:23:43.860><c> doing</c><00:23:44.580><c> the</c><00:23:44.760><c> C</c><00:23:44.880><c> plus</c>

00:23:45.110 --> 00:23:45.120 align:start position:0%
if you start you know doing the C plus
 

00:23:45.120 --> 00:23:46.909 align:start position:0%
if you start you know doing the C plus
plus<00:23:45.360><c> style</c><00:23:45.659><c> duplication</c><00:23:46.500><c> of</c>

00:23:46.909 --> 00:23:46.919 align:start position:0%
plus style duplication of
 

00:23:46.919 --> 00:23:49.909 align:start position:0%
plus style duplication of
implementations<00:23:47.760><c> or</c><00:23:48.360><c> if</c><00:23:48.900><c> there's</c><00:23:49.020><c> some</c><00:23:49.440><c> you</c>

00:23:49.909 --> 00:23:49.919 align:start position:0%
implementations or if there's some you
 

00:23:49.919 --> 00:23:52.190 align:start position:0%
implementations or if there's some you
know<00:23:49.980><c> uniform</c><00:23:50.400><c> representation</c><00:23:51.000><c> you</c><00:23:51.600><c> can</c><00:23:51.659><c> do</c><00:23:51.780><c> a</c>

00:23:52.190 --> 00:23:52.200 align:start position:0%
know uniform representation you can do a
 

00:23:52.200 --> 00:23:55.250 align:start position:0%
know uniform representation you can do a
la<00:23:52.380><c> la</c><00:23:52.380><c> ocamel</c><00:23:53.039><c> or</c><00:23:53.520><c> you</c><00:23:53.820><c> know</c><00:23:53.940><c> Java</c><00:23:54.419><c> I</c><00:23:55.140><c> think</c>

00:23:55.250 --> 00:23:55.260 align:start position:0%
la la ocamel or you know Java I think
 

00:23:55.260 --> 00:23:56.750 align:start position:0%
la la ocamel or you know Java I think
there's<00:23:55.440><c> not</c><00:23:55.620><c> much</c><00:23:55.740><c> you</c><00:23:55.919><c> can</c><00:23:56.039><c> do</c><00:23:56.159><c> actually</c><00:23:56.340><c> I</c>

00:23:56.750 --> 00:23:56.760 align:start position:0%
there's not much you can do actually I
 

00:23:56.760 --> 00:24:00.529 align:start position:0%
there's not much you can do actually I
mean<00:23:56.880><c> uh</c><00:23:57.480><c> the</c><00:23:58.039><c> generics</c><00:23:59.039><c> of</c><00:23:59.340><c> C</c><00:23:59.520><c> plus</c><00:23:59.640><c> are</c>

00:24:00.529 --> 00:24:00.539 align:start position:0%
mean uh the generics of C plus are
 

00:24:00.539 --> 00:24:01.610 align:start position:0%
mean uh the generics of C plus are
different<00:24:00.659><c> in</c><00:24:00.900><c> the</c><00:24:01.020><c> sense</c><00:24:01.200><c> that</c><00:24:01.380><c> they</c><00:24:01.500><c> are</c>

00:24:01.610 --> 00:24:01.620 align:start position:0%
different in the sense that they are
 

00:24:01.620 --> 00:24:03.649 align:start position:0%
different in the sense that they are
analyzed<00:24:02.039><c> differently</c><00:24:02.460><c> and</c><00:24:03.059><c> you</c><00:24:03.179><c> only</c><00:24:03.419><c> get</c>

00:24:03.649 --> 00:24:03.659 align:start position:0%
analyzed differently and you only get
 

00:24:03.659 --> 00:24:06.770 align:start position:0%
analyzed differently and you only get
errors<00:24:04.020><c> in</c><00:24:04.440><c> on</c><00:24:05.280><c> instantiations</c><00:24:05.940><c> but</c><00:24:06.360><c> we</c><00:24:06.600><c> will</c>

00:24:06.770 --> 00:24:06.780 align:start position:0%
errors in on instantiations but we will
 

00:24:06.780 --> 00:24:09.289 align:start position:0%
errors in on instantiations but we will
still<00:24:07.200><c> need</c><00:24:07.500><c> to</c><00:24:07.740><c> instantiate</c><00:24:08.280><c> uh</c><00:24:09.059><c> and</c>

00:24:09.289 --> 00:24:09.299 align:start position:0%
still need to instantiate uh and
 

00:24:09.299 --> 00:24:11.390 align:start position:0%
still need to instantiate uh and
generate<00:24:09.659><c> code</c><00:24:09.840><c> for</c><00:24:10.080><c> each</c><00:24:10.260><c> specific</c><00:24:10.620><c> case</c><00:24:10.919><c> but</c>

00:24:11.390 --> 00:24:11.400 align:start position:0%
generate code for each specific case but
 

00:24:11.400 --> 00:24:14.510 align:start position:0%
generate code for each specific case but
that's<00:24:12.120><c> not</c><00:24:12.360><c> worth</c><00:24:12.720><c> a</c><00:24:13.200><c> worse</c><00:24:13.679><c> than</c><00:24:14.220><c> what</c><00:24:14.400><c> you</c>

00:24:14.510 --> 00:24:14.520 align:start position:0%
that's not worth a worse than what you
 

00:24:14.520 --> 00:24:16.610 align:start position:0%
that's not worth a worse than what you
get<00:24:14.640><c> now</c><00:24:14.820><c> what</c><00:24:15.240><c> you</c><00:24:15.360><c> get</c><00:24:15.480><c> now</c><00:24:15.659><c> is</c><00:24:16.020><c> writing</c><00:24:16.500><c> by</c>

00:24:16.610 --> 00:24:16.620 align:start position:0%
get now what you get now is writing by
 

00:24:16.620 --> 00:24:17.870 align:start position:0%
get now what you get now is writing by
hand<00:24:16.860><c> for</c><00:24:17.159><c> different</c><00:24:17.280><c> types</c><00:24:17.640><c> different</c>

00:24:17.870 --> 00:24:17.880 align:start position:0%
hand for different types different
 

00:24:17.880 --> 00:24:19.310 align:start position:0%
hand for different types different
functions<00:24:18.240><c> that</c><00:24:18.419><c> would</c><00:24:18.600><c> end</c><00:24:18.720><c> up</c><00:24:18.840><c> separately</c>

00:24:19.310 --> 00:24:19.320 align:start position:0%
functions that would end up separately
 

00:24:19.320 --> 00:24:22.370 align:start position:0%
functions that would end up separately
in<00:24:19.559><c> by</c><00:24:19.980><c> code</c><00:24:20.640><c> so</c>

00:24:22.370 --> 00:24:22.380 align:start position:0%
in by code so
 

00:24:22.380 --> 00:24:24.590 align:start position:0%
in by code so
yeah

00:24:24.590 --> 00:24:24.600 align:start position:0%
yeah
 

00:24:24.600 --> 00:24:26.270 align:start position:0%
yeah
it's<00:24:25.140><c> not</c><00:24:25.320><c> nothing</c><00:24:25.559><c> is</c><00:24:25.799><c> worse</c><00:24:25.980><c> than</c><00:24:26.159><c> that</c>

00:24:26.270 --> 00:24:26.280 align:start position:0%
it's not nothing is worse than that
 

00:24:26.280 --> 00:24:28.549 align:start position:0%
it's not nothing is worse than that
that's<00:24:26.520><c> a</c><00:24:26.760><c> duplication</c><00:24:27.360><c> in</c><00:24:27.539><c> code</c><00:24:27.720><c> and</c><00:24:28.020><c> in</c><00:24:28.200><c> byte</c>

00:24:28.549 --> 00:24:28.559 align:start position:0%
that's a duplication in code and in byte
 

00:24:28.559 --> 00:24:30.830 align:start position:0%
that's a duplication in code and in byte
code<00:24:28.679><c> if</c><00:24:29.460><c> you</c><00:24:29.520><c> have</c><00:24:29.640><c> generics</c><00:24:30.059><c> we</c><00:24:30.419><c> at</c><00:24:30.720><c> least</c>

00:24:30.830 --> 00:24:30.840 align:start position:0%
code if you have generics we at least
 

00:24:30.840 --> 00:24:32.510 align:start position:0%
code if you have generics we at least
only<00:24:31.080><c> have</c><00:24:31.260><c> it</c><00:24:31.440><c> in</c><00:24:31.559><c> source</c>

00:24:32.510 --> 00:24:32.520 align:start position:0%
only have it in source
 

00:24:32.520 --> 00:24:34.789 align:start position:0%
only have it in source
in<00:24:33.179><c> only</c><00:24:33.539><c> in</c><00:24:33.659><c> the</c><00:24:33.780><c> bytecode</c>

00:24:34.789 --> 00:24:34.799 align:start position:0%
in only in the bytecode
 

00:24:34.799 --> 00:24:37.850 align:start position:0%
in only in the bytecode
so<00:24:35.460><c> my</c><00:24:35.940><c> question</c><00:24:36.120><c> is</c><00:24:36.360><c> related</c><00:24:36.900><c> to</c><00:24:37.320><c> that</c>

00:24:37.850 --> 00:24:37.860 align:start position:0%
so my question is related to that
 

00:24:37.860 --> 00:24:40.010 align:start position:0%
so my question is related to that
question<00:24:38.100><c> regarding</c><00:24:38.940><c> genetics</c><00:24:39.419><c> but</c><00:24:39.600><c> from</c><00:24:39.840><c> a</c>

00:24:40.010 --> 00:24:40.020 align:start position:0%
question regarding genetics but from a
 

00:24:40.020 --> 00:24:42.350 align:start position:0%
question regarding genetics but from a
different<00:24:40.200><c> aspect</c><00:24:40.740><c> so</c>

00:24:42.350 --> 00:24:42.360 align:start position:0%
different aspect so
 

00:24:42.360 --> 00:24:44.990 align:start position:0%
different aspect so
type<00:24:42.780><c> system</c><00:24:43.020><c> I</c><00:24:43.320><c> understand</c><00:24:43.559><c> but</c><00:24:44.280><c> once</c><00:24:44.760><c> we</c><00:24:44.880><c> get</c>

00:24:44.990 --> 00:24:45.000 align:start position:0%
type system I understand but once we get
 

00:24:45.000 --> 00:24:47.630 align:start position:0%
type system I understand but once we get
generics<00:24:45.480><c> into</c><00:24:45.720><c> solidity</c><00:24:46.500><c> wouldn't</c><00:24:47.220><c> the</c>

00:24:47.630 --> 00:24:47.640 align:start position:0%
generics into solidity wouldn't the
 

00:24:47.640 --> 00:24:50.090 align:start position:0%
generics into solidity wouldn't the
developer<00:24:48.179><c> have</c><00:24:48.659><c> to</c><00:24:48.840><c> focus</c><00:24:49.260><c> on</c><00:24:49.500><c> 10</c><00:24:49.860><c> more</c>

00:24:50.090 --> 00:24:50.100 align:start position:0%
developer have to focus on 10 more
 

00:24:50.100 --> 00:24:52.610 align:start position:0%
developer have to focus on 10 more
things<00:24:50.460><c> instead</c><00:24:51.360><c> of</c><00:24:51.419><c> focusing</c><00:24:51.900><c> on</c><00:24:52.200><c> writing</c>

00:24:52.610 --> 00:24:52.620 align:start position:0%
things instead of focusing on writing
 

00:24:52.620 --> 00:24:57.350 align:start position:0%
things instead of focusing on writing
business<00:24:52.860><c> logic</c><00:24:53.760><c> uh</c><00:24:54.900><c> uh</c><00:24:55.320><c> good</c><00:24:55.559><c> question</c><00:24:55.799><c> uh</c><00:24:56.700><c> I</c>

00:24:57.350 --> 00:24:57.360 align:start position:0%
business logic uh uh good question uh I
 

00:24:57.360 --> 00:25:00.289 align:start position:0%
business logic uh uh good question uh I
would<00:24:57.539><c> I</c><00:24:57.960><c> would</c><00:24:58.200><c> think</c><00:24:58.380><c> that</c><00:24:58.740><c> the</c><00:24:59.159><c> uh</c><00:25:00.000><c> yeah</c>

00:25:00.289 --> 00:25:00.299 align:start position:0%
would I would think that the uh yeah
 

00:25:00.299 --> 00:25:01.789 align:start position:0%
would I would think that the uh yeah
down<00:25:00.600><c> to</c><00:25:00.780><c> earth</c><00:25:00.900><c> go</c><00:25:01.140><c> to</c><00:25:01.320><c> smart</c><00:25:01.500><c> contract</c>

00:25:01.789 --> 00:25:01.799 align:start position:0%
down to earth go to smart contract
 

00:25:01.799 --> 00:25:03.890 align:start position:0%
down to earth go to smart contract
writer<00:25:02.220><c> will</c><00:25:02.280><c> not</c><00:25:02.400><c> bother</c><00:25:02.580><c> with</c><00:25:02.820><c> this</c>

00:25:03.890 --> 00:25:03.900 align:start position:0%
writer will not bother with this
 

00:25:03.900 --> 00:25:06.409 align:start position:0%
writer will not bother with this
it's<00:25:04.140><c> mainly</c><00:25:04.679><c> something</c><00:25:05.220><c> for</c><00:25:06.059><c> us</c><00:25:06.179><c> for</c>

00:25:06.409 --> 00:25:06.419 align:start position:0%
it's mainly something for us for
 

00:25:06.419 --> 00:25:08.590 align:start position:0%
it's mainly something for us for
defining<00:25:06.780><c> a</c><00:25:06.900><c> senate</c><00:25:07.200><c> library</c><00:25:07.440><c> and</c><00:25:07.980><c> for</c><00:25:08.220><c> people</c>

00:25:08.590 --> 00:25:08.600 align:start position:0%
defining a senate library and for people
 

00:25:08.600 --> 00:25:10.909 align:start position:0%
defining a senate library and for people
writing<00:25:09.600><c> libraries</c><00:25:10.140><c> to</c><00:25:10.440><c> support</c><00:25:10.620><c> smart</c>

00:25:10.909 --> 00:25:10.919 align:start position:0%
writing libraries to support smart
 

00:25:10.919 --> 00:25:15.049 align:start position:0%
writing libraries to support smart
conflict<00:25:11.340><c> developer</c><00:25:11.840><c> first</c><00:25:12.840><c> so</c><00:25:13.080><c> I</c><00:25:13.260><c> mean</c><00:25:13.440><c> uh</c>

00:25:15.049 --> 00:25:15.059 align:start position:0%
conflict developer first so I mean uh
 

00:25:15.059 --> 00:25:18.049 align:start position:0%
conflict developer first so I mean uh
the<00:25:15.960><c> language</c><00:25:16.220><c> supporting</c><00:25:17.220><c> generics</c><00:25:17.700><c> and</c>

00:25:18.049 --> 00:25:18.059 align:start position:0%
the language supporting generics and
 

00:25:18.059 --> 00:25:19.789 align:start position:0%
the language supporting generics and
having<00:25:18.299><c> generic</c><00:25:18.780><c> types</c><00:25:19.020><c> doesn't</c><00:25:19.200><c> force</c><00:25:19.679><c> you</c>

00:25:19.789 --> 00:25:19.799 align:start position:0%
having generic types doesn't force you
 

00:25:19.799 --> 00:25:21.350 align:start position:0%
having generic types doesn't force you
to<00:25:19.980><c> use</c><00:25:20.100><c> them</c><00:25:20.340><c> and</c><00:25:20.460><c> it</c><00:25:20.640><c> doesn't</c><00:25:20.760><c> mean</c><00:25:21.120><c> that</c>

00:25:21.350 --> 00:25:21.360 align:start position:0%
to use them and it doesn't mean that
 

00:25:21.360 --> 00:25:23.630 align:start position:0%
to use them and it doesn't mean that
anybody<00:25:21.600><c> has</c><00:25:21.900><c> to</c><00:25:22.020><c> use</c><00:25:22.200><c> them</c><00:25:22.440><c> but</c><00:25:23.100><c> it</c><00:25:23.280><c> will</c><00:25:23.460><c> make</c>

00:25:23.630 --> 00:25:23.640 align:start position:0%
anybody has to use them but it will make
 

00:25:23.640 --> 00:25:26.149 align:start position:0%
anybody has to use them but it will make
a<00:25:23.820><c> language</c><00:25:24.000><c> in</c><00:25:24.360><c> the</c><00:25:24.539><c> the</c><00:25:24.900><c> evolution</c><00:25:25.740><c> of</c><00:25:25.980><c> a</c>

00:25:26.149 --> 00:25:26.159 align:start position:0%
a language in the the evolution of a
 

00:25:26.159 --> 00:25:29.510 align:start position:0%
a language in the the evolution of a
language<00:25:26.340><c> much</c><00:25:26.880><c> uh</c><00:25:27.720><c> faster</c><00:25:28.380><c> and</c><00:25:28.980><c> more</c>

00:25:29.510 --> 00:25:29.520 align:start position:0%
language much uh faster and more
 

00:25:29.520 --> 00:25:31.870 align:start position:0%
language much uh faster and more
streamlined<00:25:30.000><c> we</c><00:25:30.240><c> can</c><00:25:30.419><c> in</c><00:25:30.840><c> the</c><00:25:30.900><c> future</c><00:25:31.020><c> ask</c>

00:25:31.870 --> 00:25:31.880 align:start position:0%
streamlined we can in the future ask
 

00:25:31.880 --> 00:25:34.310 align:start position:0%
streamlined we can in the future ask
people<00:25:32.880><c> if</c><00:25:33.120><c> they</c><00:25:33.299><c> propose</c><00:25:33.600><c> a</c><00:25:33.720><c> feature</c><00:25:34.020><c> to</c><00:25:34.140><c> just</c>

00:25:34.310 --> 00:25:34.320 align:start position:0%
people if they propose a feature to just
 

00:25:34.320 --> 00:25:35.870 align:start position:0%
people if they propose a feature to just
implement<00:25:34.620><c> it</c><00:25:34.860><c> in</c><00:25:35.039><c> a</c><00:25:35.159><c> standard</c><00:25:35.400><c> Library</c><00:25:35.580><c> way</c>

00:25:35.870 --> 00:25:35.880 align:start position:0%
implement it in a standard Library way
 

00:25:35.880 --> 00:25:37.190 align:start position:0%
implement it in a standard Library way
and<00:25:36.059><c> then</c><00:25:36.179><c> standardize</c><00:25:36.539><c> it</c><00:25:36.659><c> in</c><00:25:36.779><c> the</c><00:25:36.900><c> end</c><00:25:36.960><c> if</c><00:25:37.080><c> it</c>

00:25:37.190 --> 00:25:37.200 align:start position:0%
and then standardize it in the end if it
 

00:25:37.200 --> 00:25:41.090 align:start position:0%
and then standardize it in the end if it
works<00:25:37.440><c> out</c><00:25:37.500><c> which</c><00:25:38.279><c> will</c><00:25:38.820><c> yeah</c><00:25:39.720><c> have</c><00:25:40.620><c> all</c><00:25:40.980><c> the</c>

00:25:41.090 --> 00:25:41.100 align:start position:0%
works out which will yeah have all the
 

00:25:41.100 --> 00:25:42.289 align:start position:0%
works out which will yeah have all the
advantages<00:25:41.340><c> this</c><00:25:41.580><c> one</c><00:25:41.700><c> can</c><00:25:41.880><c> think</c><00:25:42.000><c> about</c><00:25:42.120><c> that</c>

00:25:42.289 --> 00:25:42.299 align:start position:0%
advantages this one can think about that
 

00:25:42.299 --> 00:25:44.630 align:start position:0%
advantages this one can think about that
but<00:25:42.600><c> for</c><00:25:42.900><c> user</c><00:25:43.200><c> code</c><00:25:43.380><c> for</c><00:25:43.799><c> the</c><00:25:44.039><c> in</c><00:25:44.220><c> smart</c><00:25:44.460><c> or</c>

00:25:44.630 --> 00:25:44.640 align:start position:0%
but for user code for the in smart or
 

00:25:44.640 --> 00:25:46.730 align:start position:0%
but for user code for the in smart or
contract<00:25:44.940><c> code</c><00:25:45.120><c> the</c><00:25:45.360><c> difference</c><00:25:45.480><c> is</c><00:25:45.840><c> not</c><00:25:46.559><c> that</c>

00:25:46.730 --> 00:25:46.740 align:start position:0%
contract code the difference is not that
 

00:25:46.740 --> 00:25:49.250 align:start position:0%
contract code the difference is not that
large<00:25:46.919><c> probably</c>

00:25:49.250 --> 00:25:49.260 align:start position:0%
 
 

00:25:49.260 --> 00:25:50.990 align:start position:0%
 
all<00:25:49.799><c> right</c><00:25:49.799><c> are</c><00:25:50.279><c> you</c><00:25:50.400><c> going</c><00:25:50.520><c> to</c><00:25:50.700><c> implement</c>

00:25:50.990 --> 00:25:51.000 align:start position:0%
all right are you going to implement
 

00:25:51.000 --> 00:25:52.970 align:start position:0%
all right are you going to implement
Lambda<00:25:51.600><c> functions</c><00:25:52.020><c> just</c><00:25:52.320><c> with</c><00:25:52.500><c> this</c><00:25:52.740><c> equation</c>

00:25:52.970 --> 00:25:52.980 align:start position:0%
Lambda functions just with this equation
 

00:25:52.980 --> 00:25:56.510 align:start position:0%
Lambda functions just with this equation
uh<00:25:54.059><c> definitely</c><00:25:54.840><c> eventually</c><00:25:55.380><c> I</c><00:25:55.679><c> would</c><00:25:55.799><c> say</c><00:25:55.980><c> I'm</c>

00:25:56.510 --> 00:25:56.520 align:start position:0%
uh definitely eventually I would say I'm
 

00:25:56.520 --> 00:25:58.669 align:start position:0%
uh definitely eventually I would say I'm
not<00:25:56.700><c> sure</c><00:25:56.880><c> whether</c><00:25:57.059><c> I</c><00:25:57.900><c> mean</c><00:25:58.020><c> getting</c><00:25:58.380><c> the</c>

00:25:58.669 --> 00:25:58.679 align:start position:0%
not sure whether I mean getting the
 

00:25:58.679 --> 00:26:00.950 align:start position:0%
not sure whether I mean getting the
basic<00:25:58.919><c> type</c><00:25:59.100><c> system</c><00:25:59.400><c> uh</c><00:26:00.179><c> going</c><00:26:00.360><c> and</c><00:26:00.600><c> all</c><00:26:00.779><c> that</c>

00:26:00.950 --> 00:26:00.960 align:start position:0%
basic type system uh going and all that
 

00:26:00.960 --> 00:26:03.169 align:start position:0%
basic type system uh going and all that
will<00:26:01.200><c> already</c><00:26:01.440><c> take</c><00:26:01.799><c> some</c><00:26:02.039><c> time</c><00:26:02.220><c> but</c><00:26:03.000><c> yeah</c>

00:26:03.169 --> 00:26:03.179 align:start position:0%
will already take some time but yeah
 

00:26:03.179 --> 00:26:05.690 align:start position:0%
will already take some time but yeah
eventually<00:26:03.720><c> this</c><00:26:04.500><c> is</c><00:26:05.159><c> of</c><00:26:05.340><c> course</c><00:26:05.460><c> something</c>

00:26:05.690 --> 00:26:05.700 align:start position:0%
eventually this is of course something
 

00:26:05.700 --> 00:26:08.450 align:start position:0%
eventually this is of course something
that<00:26:06.059><c> will</c><00:26:06.240><c> make</c><00:26:06.840><c> things</c><00:26:07.159><c> easier</c><00:26:08.159><c> to</c><00:26:08.340><c> read</c>

00:26:08.450 --> 00:26:08.460 align:start position:0%
that will make things easier to read
 

00:26:08.460 --> 00:26:11.210 align:start position:0%
that will make things easier to read
easier<00:26:08.820><c> to</c><00:26:08.940><c> write</c><00:26:09.120><c> and</c><00:26:09.539><c> are</c><00:26:10.020><c> beautiful</c><00:26:10.260><c> so</c><00:26:10.679><c> and</c>

00:26:11.210 --> 00:26:11.220 align:start position:0%
easier to write and are beautiful so and
 

00:26:11.220 --> 00:26:13.370 align:start position:0%
easier to write and are beautiful so and
maybe<00:26:11.400><c> not</c><00:26:11.640><c> I</c><00:26:12.179><c> mean</c><00:26:12.299><c> as</c><00:26:12.659><c> long</c><00:26:12.960><c> as</c><00:26:13.080><c> you</c><00:26:13.200><c> don't</c>

00:26:13.370 --> 00:26:13.380 align:start position:0%
maybe not I mean as long as you don't
 

00:26:13.380 --> 00:26:15.049 align:start position:0%
maybe not I mean as long as you don't
want<00:26:13.500><c> these</c><00:26:13.799><c> things</c><00:26:13.860><c> to</c><00:26:14.039><c> capture</c><00:26:14.279><c> reliables</c>

00:26:15.049 --> 00:26:15.059 align:start position:0%
want these things to capture reliables
 

00:26:15.059 --> 00:26:16.669 align:start position:0%
want these things to capture reliables
it's<00:26:15.480><c> easy</c>

00:26:16.669 --> 00:26:16.679 align:start position:0%
it's easy
 

00:26:16.679 --> 00:26:19.130 align:start position:0%
it's easy
capturing<00:26:17.580><c> even</c><00:26:17.820><c> maybe</c><00:26:18.299><c> something</c><00:26:18.659><c> at</c><00:26:18.960><c> some</c>

00:26:19.130 --> 00:26:19.140 align:start position:0%
capturing even maybe something at some
 

00:26:19.140 --> 00:26:22.070 align:start position:0%
capturing even maybe something at some
point<00:26:19.200><c> we</c><00:26:19.440><c> can</c><00:26:19.679><c> also</c><00:26:19.799><c> consider</c><00:26:20.279><c> but</c><00:26:20.640><c> yeah</c>

00:26:22.070 --> 00:26:22.080 align:start position:0%
point we can also consider but yeah
 

00:26:22.080 --> 00:26:24.230 align:start position:0%
point we can also consider but yeah
not<00:26:22.620><c> not</c><00:26:22.919><c> the</c><00:26:23.159><c> first</c><00:26:23.220><c> thing</c><00:26:23.400><c> we</c><00:26:23.520><c> will</c><00:26:23.700><c> do</c><00:26:23.880><c> but</c>

00:26:24.230 --> 00:26:24.240 align:start position:0%
not not the first thing we will do but
 

00:26:24.240 --> 00:26:25.850 align:start position:0%
not not the first thing we will do but
eventually

00:26:25.850 --> 00:26:25.860 align:start position:0%
eventually
 

00:26:25.860 --> 00:26:28.490 align:start position:0%
eventually
have<00:26:26.400><c> you</c><00:26:26.520><c> been</c><00:26:26.700><c> thinking</c><00:26:27.059><c> about</c><00:26:27.500><c> integrating</c>

00:26:28.490 --> 00:26:28.500 align:start position:0%
have you been thinking about integrating
 

00:26:28.500 --> 00:26:31.250 align:start position:0%
have you been thinking about integrating
on<00:26:29.279><c> trying</c><00:26:29.520><c> computation</c><00:26:30.240><c> and</c><00:26:30.659><c> off-tracking</c>

00:26:31.250 --> 00:26:31.260 align:start position:0%
on trying computation and off-tracking
 

00:26:31.260 --> 00:26:33.769 align:start position:0%
on trying computation and off-tracking
computation<00:26:31.679><c> in</c><00:26:32.340><c> the</c><00:26:32.460><c> one</c><00:26:32.700><c> source</c><00:26:33.179><c> file</c><00:26:33.419><c> this</c>

00:26:33.769 --> 00:26:33.779 align:start position:0%
computation in the one source file this
 

00:26:33.779 --> 00:26:36.710 align:start position:0%
computation in the one source file this
is<00:26:33.960><c> of</c><00:26:34.380><c> course</c><00:26:34.980><c> very</c><00:26:35.400><c> problematic</c>

00:26:36.710 --> 00:26:36.720 align:start position:0%
is of course very problematic
 

00:26:36.720 --> 00:26:38.990 align:start position:0%
is of course very problematic
but<00:26:37.260><c> in</c><00:26:37.679><c> some</c><00:26:37.799><c> moment</c><00:26:37.980><c> in</c><00:26:38.279><c> future</c><00:26:38.520><c> we</c><00:26:38.820><c> might</c>

00:26:38.990 --> 00:26:39.000 align:start position:0%
but in some moment in future we might
 

00:26:39.000 --> 00:26:42.350 align:start position:0%
but in some moment in future we might
need<00:26:39.240><c> it</c><00:26:39.480><c> not</c><00:26:40.020><c> necessarily</c><00:26:40.559><c> in</c><00:26:41.279><c> solidity</c><00:26:41.820><c> but</c>

00:26:42.350 --> 00:26:42.360 align:start position:0%
need it not necessarily in solidity but
 

00:26:42.360 --> 00:26:46.430 align:start position:0%
need it not necessarily in solidity but
maybe<00:26:42.659><c> you</c><00:26:43.559><c> should</c><00:26:43.740><c> try</c><00:26:43.919><c> to</c><00:26:44.100><c> think</c><00:26:44.279><c> about</c><00:26:44.460><c> that</c>

00:26:46.430 --> 00:26:46.440 align:start position:0%
maybe you should try to think about that
 

00:26:46.440 --> 00:26:49.010 align:start position:0%
maybe you should try to think about that
yeah<00:26:47.220><c> I</c><00:26:47.760><c> mean</c>

00:26:49.010 --> 00:26:49.020 align:start position:0%
yeah I mean
 

00:26:49.020 --> 00:26:53.029 align:start position:0%
yeah I mean
on<00:26:49.500><c> the</c><00:26:49.620><c> solidity</c><00:26:49.980><c> level</c><00:26:50.159><c> we</c><00:26:50.580><c> don't</c><00:26:50.880><c> yet</c><00:26:52.200><c> uh</c>

00:26:53.029 --> 00:26:53.039 align:start position:0%
on the solidity level we don't yet uh
 

00:26:53.039 --> 00:26:54.950 align:start position:0%
on the solidity level we don't yet uh
interact<00:26:53.460><c> that</c><00:26:53.700><c> much</c><00:26:53.880><c> with</c><00:26:54.179><c> yeah</c><00:26:54.480><c> off-term</c>

00:26:54.950 --> 00:26:54.960 align:start position:0%
interact that much with yeah off-term
 

00:26:54.960 --> 00:26:57.289 align:start position:0%
interact that much with yeah off-term
computations<00:26:55.380><c> Layer</c><00:26:55.980><c> Two</c><00:26:56.100><c> stuff</c><00:26:56.400><c> or</c><00:26:56.580><c> whatever</c>

00:26:57.289 --> 00:26:57.299 align:start position:0%
computations Layer Two stuff or whatever
 

00:26:57.299 --> 00:27:00.710 align:start position:0%
computations Layer Two stuff or whatever
but<00:26:57.900><c> yeah</c><00:26:58.200><c> we</c><00:26:58.559><c> are</c><00:26:59.400><c> aware</c><00:26:59.700><c> that</c><00:27:00.059><c> we</c><00:27:00.299><c> need</c><00:27:00.480><c> to</c>

00:27:00.710 --> 00:27:00.720 align:start position:0%
but yeah we are aware that we need to
 

00:27:00.720 --> 00:27:02.750 align:start position:0%
but yeah we are aware that we need to
interact<00:27:01.020><c> with</c><00:27:01.200><c> that</c><00:27:01.440><c> and</c><00:27:02.100><c> support</c><00:27:02.460><c> that</c>

00:27:02.750 --> 00:27:02.760 align:start position:0%
interact with that and support that
 

00:27:02.760 --> 00:27:03.950 align:start position:0%
interact with that and support that
where<00:27:03.000><c> we</c><00:27:03.179><c> can</c>

00:27:03.950 --> 00:27:03.960 align:start position:0%
where we can
 

00:27:03.960 --> 00:27:05.570 align:start position:0%
where we can
I<00:27:04.440><c> think</c><00:27:04.559><c> you</c><00:27:04.679><c> mentioned</c><00:27:05.039><c> something</c><00:27:05.279><c> about</c>

00:27:05.570 --> 00:27:05.580 align:start position:0%
I think you mentioned something about
 

00:27:05.580 --> 00:27:08.210 align:start position:0%
I think you mentioned something about
the<00:27:05.940><c> performance</c><00:27:06.360><c> of</c><00:27:06.779><c> via</c><00:27:07.140><c> IR</c>

00:27:08.210 --> 00:27:08.220 align:start position:0%
the performance of via IR
 

00:27:08.220 --> 00:27:11.450 align:start position:0%
the performance of via IR
uh<00:27:09.120><c> did</c><00:27:09.480><c> you</c><00:27:09.659><c> mean</c><00:27:09.840><c> the</c><00:27:10.080><c> how</c><00:27:10.740><c> long</c><00:27:10.860><c> it</c><00:27:11.039><c> takes</c><00:27:11.220><c> to</c>

00:27:11.450 --> 00:27:11.460 align:start position:0%
uh did you mean the how long it takes to
 

00:27:11.460 --> 00:27:13.549 align:start position:0%
uh did you mean the how long it takes to
actually<00:27:11.820><c> use</c><00:27:12.120><c> it</c><00:27:12.299><c> yeah</c><00:27:12.960><c> I</c><00:27:13.320><c> mean</c><00:27:13.380><c> the</c>

00:27:13.549 --> 00:27:13.559 align:start position:0%
actually use it yeah I mean the
 

00:27:13.559 --> 00:27:15.409 align:start position:0%
actually use it yeah I mean the
compilation<00:27:14.159><c> time</c><00:27:14.460><c> yeah</c><00:27:14.700><c> the</c><00:27:15.000><c> computation</c>

00:27:15.409 --> 00:27:15.419 align:start position:0%
compilation time yeah the computation
 

00:27:15.419 --> 00:27:16.970 align:start position:0%
compilation time yeah the computation
time<00:27:15.659><c> is</c><00:27:15.840><c> kind</c><00:27:16.020><c> of</c><00:27:16.140><c> like</c><00:27:16.200><c> 10</c><00:27:16.440><c> times</c><00:27:16.620><c> or</c><00:27:16.860><c> even</c>

00:27:16.970 --> 00:27:16.980 align:start position:0%
time is kind of like 10 times or even
 

00:27:16.980 --> 00:27:19.610 align:start position:0%
time is kind of like 10 times or even
worse<00:27:17.279><c> in</c><00:27:17.760><c> some</c><00:27:18.000><c> complex</c><00:27:18.600><c> contracts</c><00:27:19.080><c> exactly</c>

00:27:19.610 --> 00:27:19.620 align:start position:0%
worse in some complex contracts exactly
 

00:27:19.620 --> 00:27:22.370 align:start position:0%
worse in some complex contracts exactly
anyone<00:27:20.220><c> that's</c><00:27:20.460><c> used</c><00:27:20.820><c> via</c><00:27:21.299><c> AR</c><00:27:21.539><c> today</c><00:27:21.900><c> has</c>

00:27:22.370 --> 00:27:22.380 align:start position:0%
anyone that's used via AR today has
 

00:27:22.380 --> 00:27:24.350 align:start position:0%
anyone that's used via AR today has
experienced<00:27:22.919><c> that</c><00:27:23.100><c> so</c><00:27:23.340><c> how</c><00:27:23.880><c> much</c><00:27:24.059><c> of</c><00:27:24.179><c> an</c>

00:27:24.350 --> 00:27:24.360 align:start position:0%
experienced that so how much of an
 

00:27:24.360 --> 00:27:26.630 align:start position:0%
experienced that so how much of an
improvement<00:27:24.720><c> do</c><00:27:25.020><c> you</c><00:27:25.200><c> think</c><00:27:25.320><c> we</c><00:27:26.220><c> are</c><00:27:26.340><c> going</c><00:27:26.520><c> to</c>

00:27:26.630 --> 00:27:26.640 align:start position:0%
improvement do you think we are going to
 

00:27:26.640 --> 00:27:28.070 align:start position:0%
improvement do you think we are going to
see

00:27:28.070 --> 00:27:28.080 align:start position:0%
see
 

00:27:28.080 --> 00:27:31.549 align:start position:0%
see
I<00:27:28.679><c> mean</c><00:27:28.919><c> uh</c><00:27:29.640><c> so</c><00:27:29.880><c> far</c><00:27:30.059><c> the</c><00:27:30.539><c> Via</c><00:27:30.960><c> our</c><00:27:31.140><c> compilation</c>

00:27:31.549 --> 00:27:31.559 align:start position:0%
I mean uh so far the Via our compilation
 

00:27:31.559 --> 00:27:33.950 align:start position:0%
I mean uh so far the Via our compilation
pipeline<00:27:32.039><c> has</c><00:27:32.340><c> not</c><00:27:32.520><c> been</c><00:27:32.700><c> written</c><00:27:33.059><c> with</c><00:27:33.360><c> any</c>

00:27:33.950 --> 00:27:33.960 align:start position:0%
pipeline has not been written with any
 

00:27:33.960 --> 00:27:36.230 align:start position:0%
pipeline has not been written with any
performance<00:27:34.860><c> considerations</c><00:27:35.400><c> in</c><00:27:35.820><c> mind</c><00:27:35.940><c> at</c>

00:27:36.230 --> 00:27:36.240 align:start position:0%
performance considerations in mind at
 

00:27:36.240 --> 00:27:37.610 align:start position:0%
performance considerations in mind at
all<00:27:36.360><c> if</c><00:27:36.539><c> you've</c><00:27:36.779><c> written</c><00:27:37.020><c> it</c><00:27:37.140><c> for</c><00:27:37.260><c> correctness</c>

00:27:37.610 --> 00:27:37.620 align:start position:0%
all if you've written it for correctness
 

00:27:37.620 --> 00:27:40.789 align:start position:0%
all if you've written it for correctness
first<00:27:38.000><c> and</c><00:27:39.000><c> only</c><00:27:39.240><c> now</c><00:27:39.600><c> are</c><00:27:39.900><c> starting</c><00:27:40.140><c> to</c>

00:27:40.789 --> 00:27:40.799 align:start position:0%
first and only now are starting to
 

00:27:40.799 --> 00:27:44.269 align:start position:0%
first and only now are starting to
realize<00:27:41.640><c> how</c><00:27:41.940><c> bad</c><00:27:42.059><c> that</c><00:27:42.299><c> got</c><00:27:42.539><c> and</c><00:27:43.320><c> uh</c><00:27:43.919><c> that</c><00:27:44.159><c> we</c>

00:27:44.269 --> 00:27:44.279 align:start position:0%
realize how bad that got and uh that we
 

00:27:44.279 --> 00:27:45.890 align:start position:0%
realize how bad that got and uh that we
need<00:27:44.400><c> to</c><00:27:44.520><c> do</c><00:27:44.640><c> something</c><00:27:44.820><c> about</c><00:27:45.059><c> performance</c>

00:27:45.890 --> 00:27:45.900 align:start position:0%
need to do something about performance
 

00:27:45.900 --> 00:27:49.010 align:start position:0%
need to do something about performance
there<00:27:46.080><c> so</c><00:27:46.799><c> I</c><00:27:47.039><c> could</c><00:27:47.159><c> imagine</c><00:27:47.400><c> that</c><00:27:47.820><c> we</c><00:27:48.000><c> can</c><00:27:48.240><c> get</c>

00:27:49.010 --> 00:27:49.020 align:start position:0%
there so I could imagine that we can get
 

00:27:49.020 --> 00:27:50.390 align:start position:0%
there so I could imagine that we can get
quite<00:27:49.380><c> a</c><00:27:49.559><c> way</c>

00:27:50.390 --> 00:27:50.400 align:start position:0%
quite a way
 

00:27:50.400 --> 00:27:53.570 align:start position:0%
quite a way
but<00:27:51.059><c> yeah</c><00:27:51.900><c> it's</c><00:27:52.260><c> hard</c><00:27:52.440><c> to</c><00:27:52.620><c> tell</c><00:27:52.740><c> before</c><00:27:53.340><c> we're</c>

00:27:53.570 --> 00:27:53.580 align:start position:0%
but yeah it's hard to tell before we're
 

00:27:53.580 --> 00:27:58.190 align:start position:0%
but yeah it's hard to tell before we're
actually<00:27:53.760><c> doing</c><00:27:53.940><c> it</c>

00:27:58.190 --> 00:27:58.200 align:start position:0%
 
 

00:27:58.200 --> 00:28:00.169 align:start position:0%
 
um<00:27:58.320><c> regarding</c><00:27:58.860><c> generics</c><00:27:59.340><c> how</c><00:27:59.880><c> much</c><00:28:00.000><c> thought</c>

00:28:00.169 --> 00:28:00.179 align:start position:0%
um regarding generics how much thought
 

00:28:00.179 --> 00:28:02.210 align:start position:0%
um regarding generics how much thought
was<00:28:00.419><c> put</c><00:28:00.600><c> into</c><00:28:00.720><c> the</c><00:28:01.140><c> auditability</c><00:28:01.799><c> for</c>

00:28:02.210 --> 00:28:02.220 align:start position:0%
was put into the auditability for
 

00:28:02.220 --> 00:28:04.430 align:start position:0%
was put into the auditability for
external<00:28:02.640><c> code</c><00:28:02.820><c> Auditors</c><00:28:03.360><c> will</c><00:28:03.900><c> it</c><00:28:04.080><c> improve</c>

00:28:04.430 --> 00:28:04.440 align:start position:0%
external code Auditors will it improve
 

00:28:04.440 --> 00:28:06.950 align:start position:0%
external code Auditors will it improve
the<00:28:04.559><c> story</c><00:28:04.740><c> make</c><00:28:05.159><c> it</c><00:28:05.340><c> worse</c><00:28:05.700><c> more</c><00:28:06.419><c> training</c>

00:28:06.950 --> 00:28:06.960 align:start position:0%
the story make it worse more training
 

00:28:06.960 --> 00:28:08.930 align:start position:0%
the story make it worse more training
can<00:28:07.200><c> they</c><00:28:07.440><c> forget</c><00:28:07.559><c> stuff</c>

00:28:08.930 --> 00:28:08.940 align:start position:0%
can they forget stuff
 

00:28:08.940 --> 00:28:10.909 align:start position:0%
can they forget stuff
I<00:28:09.659><c> think</c><00:28:09.840><c> it</c><00:28:09.960><c> will</c><00:28:10.080><c> actually</c><00:28:10.320><c> improve</c><00:28:10.740><c> things</c>

00:28:10.909 --> 00:28:10.919 align:start position:0%
I think it will actually improve things
 

00:28:10.919 --> 00:28:13.310 align:start position:0%
I think it will actually improve things
I<00:28:11.279><c> mean</c><00:28:11.400><c> uh</c><00:28:11.940><c> we</c><00:28:12.419><c> will</c><00:28:12.600><c> be</c><00:28:12.720><c> able</c><00:28:12.840><c> to</c><00:28:12.960><c> have</c><00:28:13.200><c> the</c>

00:28:13.310 --> 00:28:13.320 align:start position:0%
I mean uh we will be able to have the
 

00:28:13.320 --> 00:28:14.750 align:start position:0%
I mean uh we will be able to have the
standard<00:28:13.620><c> Library</c><00:28:13.740><c> definitions</c><00:28:14.340><c> of</c><00:28:14.460><c> all</c><00:28:14.580><c> the</c>

00:28:14.750 --> 00:28:14.760 align:start position:0%
standard Library definitions of all the
 

00:28:14.760 --> 00:28:16.130 align:start position:0%
standard Library definitions of all the
built-in<00:28:15.000><c> functionality</c><00:28:15.480><c> which</c><00:28:15.720><c> can</c><00:28:15.960><c> be</c>

00:28:16.130 --> 00:28:16.140 align:start position:0%
built-in functionality which can be
 

00:28:16.140 --> 00:28:18.289 align:start position:0%
built-in functionality which can be
exported<00:28:16.500><c> which</c><00:28:16.679><c> can</c><00:28:16.860><c> be</c><00:28:16.980><c> analyzed</c><00:28:17.520><c> I</c><00:28:18.179><c> think</c>

00:28:18.289 --> 00:28:18.299 align:start position:0%
exported which can be analyzed I think
 

00:28:18.299 --> 00:28:20.029 align:start position:0%
exported which can be analyzed I think
at<00:28:18.659><c> the</c><00:28:18.779><c> point</c><00:28:18.960><c> where</c><00:28:19.140><c> we</c><00:28:19.320><c> have</c><00:28:19.500><c> generics</c>

00:28:20.029 --> 00:28:20.039 align:start position:0%
at the point where we have generics
 

00:28:20.039 --> 00:28:21.470 align:start position:0%
at the point where we have generics
going<00:28:20.279><c> in</c><00:28:20.460><c> the</c><00:28:20.520><c> standard</c><00:28:20.760><c> Library</c><00:28:20.880><c> going</c><00:28:21.179><c> we</c>

00:28:21.470 --> 00:28:21.480 align:start position:0%
going in the standard Library going we
 

00:28:21.480 --> 00:28:23.690 align:start position:0%
going in the standard Library going we
will<00:28:21.659><c> actually</c><00:28:21.900><c> at</c><00:28:22.679><c> some</c><00:28:22.860><c> point</c><00:28:23.039><c> not</c>

00:28:23.690 --> 00:28:23.700 align:start position:0%
will actually at some point not
 

00:28:23.700 --> 00:28:25.250 align:start position:0%
will actually at some point not
promising<00:28:24.179><c> that</c><00:28:24.299><c> happening</c><00:28:24.659><c> soon</c><00:28:24.840><c> either</c><00:28:25.020><c> but</c>

00:28:25.250 --> 00:28:25.260 align:start position:0%
promising that happening soon either but
 

00:28:25.260 --> 00:28:27.110 align:start position:0%
promising that happening soon either but
at<00:28:25.440><c> some</c><00:28:25.620><c> point</c><00:28:25.740><c> be</c><00:28:25.980><c> able</c><00:28:26.220><c> to</c>

00:28:27.110 --> 00:28:27.120 align:start position:0%
at some point be able to
 

00:28:27.120 --> 00:28:28.669 align:start position:0%
at some point be able to
Define<00:28:27.419><c> the</c><00:28:27.659><c> form</c><00:28:27.840><c> of</c><00:28:27.960><c> semantics</c><00:28:28.380><c> for</c><00:28:28.559><c> the</c>

00:28:28.669 --> 00:28:28.679 align:start position:0%
Define the form of semantics for the
 

00:28:28.679 --> 00:28:29.990 align:start position:0%
Define the form of semantics for the
core<00:28:28.799><c> language</c><00:28:28.980><c> that</c><00:28:29.279><c> remains</c><00:28:29.700><c> which</c><00:28:29.820><c> can</c>

00:28:29.990 --> 00:28:30.000 align:start position:0%
core language that remains which can
 

00:28:30.000 --> 00:28:34.190 align:start position:0%
core language that remains which can
actually<00:28:30.240><c> help</c><00:28:30.779><c> homologation</c><00:28:31.740><c> a</c><00:28:31.980><c> lot</c><00:28:32.100><c> and</c>

00:28:34.190 --> 00:28:34.200 align:start position:0%
actually help homologation a lot and
 

00:28:34.200 --> 00:28:36.230 align:start position:0%
actually help homologation a lot and
things<00:28:34.679><c> like</c><00:28:34.860><c> that</c><00:28:34.980><c> so</c><00:28:35.159><c> I</c><00:28:35.340><c> think</c><00:28:35.460><c> reducing</c><00:28:36.059><c> the</c>

00:28:36.230 --> 00:28:36.240 align:start position:0%
things like that so I think reducing the
 

00:28:36.240 --> 00:28:37.549 align:start position:0%
things like that so I think reducing the
language<00:28:36.360><c> core</c><00:28:36.720><c> that</c><00:28:37.020><c> is</c><00:28:37.140><c> built</c><00:28:37.380><c> in</c><00:28:37.440><c> and</c>

00:28:37.549 --> 00:28:37.559 align:start position:0%
language core that is built in and
 

00:28:37.559 --> 00:28:39.289 align:start position:0%
language core that is built in and
hidden<00:28:37.799><c> in</c><00:28:37.919><c> the</c><00:28:38.039><c> compiler</c><00:28:38.520><c> is</c><00:28:38.880><c> actually</c><00:28:39.059><c> a</c>

00:28:39.289 --> 00:28:39.299 align:start position:0%
hidden in the compiler is actually a
 

00:28:39.299 --> 00:28:40.909 align:start position:0%
hidden in the compiler is actually a
good<00:28:39.419><c> thing</c><00:28:39.600><c> for</c><00:28:40.020><c> a</c><00:28:40.140><c> formal</c><00:28:40.380><c> vacation</c><00:28:40.740><c> and</c>

00:28:40.909 --> 00:28:40.919 align:start position:0%
good thing for a formal vacation and
 

00:28:40.919 --> 00:28:42.049 align:start position:0%
good thing for a formal vacation and
audit

00:28:42.049 --> 00:28:42.059 align:start position:0%
audit
 

00:28:42.059 --> 00:28:45.110 align:start position:0%
audit
yeah<00:28:42.600><c> uh</c><00:28:43.140><c> you</c><00:28:43.380><c> were</c><00:28:43.500><c> you</c><00:28:43.620><c> mentioned</c><00:28:44.039><c> that</c><00:28:44.580><c> the</c>

00:28:45.110 --> 00:28:45.120 align:start position:0%
yeah uh you were you mentioned that the
 

00:28:45.120 --> 00:28:46.730 align:start position:0%
yeah uh you were you mentioned that the
data<00:28:45.539><c> location</c><00:28:45.659><c> is</c><00:28:45.960><c> going</c><00:28:46.140><c> to</c><00:28:46.200><c> be</c><00:28:46.260><c> coming</c><00:28:46.440><c> part</c>

00:28:46.730 --> 00:28:46.740 align:start position:0%
data location is going to be coming part
 

00:28:46.740 --> 00:28:48.350 align:start position:0%
data location is going to be coming part
of<00:28:46.919><c> the</c><00:28:47.100><c> type</c><00:28:47.340><c> instead</c><00:28:47.760><c> of</c><00:28:47.820><c> being</c><00:28:47.940><c> associated</c>

00:28:48.350 --> 00:28:48.360 align:start position:0%
of the type instead of being associated
 

00:28:48.360 --> 00:28:49.850 align:start position:0%
of the type instead of being associated
with<00:28:48.480><c> the</c><00:28:48.600><c> variable</c><00:28:48.900><c> does</c><00:28:49.200><c> that</c><00:28:49.320><c> mean</c><00:28:49.500><c> that</c><00:28:49.620><c> we</c>

00:28:49.850 --> 00:28:49.860 align:start position:0%
with the variable does that mean that we
 

00:28:49.860 --> 00:28:51.409 align:start position:0%
with the variable does that mean that we
are<00:28:50.039><c> going</c><00:28:50.159><c> to</c><00:28:50.340><c> be</c><00:28:50.460><c> able</c><00:28:50.640><c> to</c><00:28:50.760><c> start</c><00:28:51.000><c> writing</c>

00:28:51.409 --> 00:28:51.419 align:start position:0%
are going to be able to start writing
 

00:28:51.419 --> 00:28:54.049 align:start position:0%
are going to be able to start writing
things<00:28:51.600><c> like</c><00:28:51.960><c> an</c><00:28:52.740><c> in-memory</c><00:28:53.220><c> array</c><00:28:53.640><c> of</c>

00:28:54.049 --> 00:28:54.059 align:start position:0%
things like an in-memory array of
 

00:28:54.059 --> 00:28:57.890 align:start position:0%
things like an in-memory array of
storage<00:28:54.360><c> pointers</c><00:28:55.080><c> or</c><00:28:55.679><c> a</c><00:28:56.480><c> in-storage</c><00:28:57.480><c> array</c>

00:28:57.890 --> 00:28:57.900 align:start position:0%
storage pointers or a in-storage array
 

00:28:57.900 --> 00:29:00.289 align:start position:0%
storage pointers or a in-storage array
of<00:28:58.380><c> code</c><00:28:58.919><c> data</c><00:28:59.340><c> pointers</c><00:28:59.640><c> because</c><00:28:59.880><c> those</c><00:29:00.120><c> are</c>

00:29:00.289 --> 00:29:00.299 align:start position:0%
of code data pointers because those are
 

00:29:00.299 --> 00:29:02.630 align:start position:0%
of code data pointers because those are
all<00:29:00.480><c> well-formed</c><00:29:01.200><c> but</c><00:29:01.500><c> something</c><00:29:01.799><c> like</c><00:29:02.159><c> a</c>

00:29:02.630 --> 00:29:02.640 align:start position:0%
all well-formed but something like a
 

00:29:02.640 --> 00:29:05.090 align:start position:0%
all well-formed but something like a
storage<00:29:02.880><c> array</c><00:29:03.419><c> of</c><00:29:03.900><c> call</c><00:29:04.320><c> data</c><00:29:04.740><c> pointers</c>

00:29:05.090 --> 00:29:05.100 align:start position:0%
storage array of call data pointers
 

00:29:05.100 --> 00:29:07.549 align:start position:0%
storage array of call data pointers
makes<00:29:05.580><c> no</c><00:29:05.940><c> sense</c><00:29:06.179><c> right</c><00:29:06.539><c> so</c><00:29:06.779><c> what</c><00:29:07.320><c> does</c><00:29:07.440><c> the</c>

00:29:07.549 --> 00:29:07.559 align:start position:0%
makes no sense right so what does the
 

00:29:07.559 --> 00:29:09.110 align:start position:0%
makes no sense right so what does the
well-formedness<00:29:08.220><c> look</c><00:29:08.400><c> like</c><00:29:08.520><c> how</c><00:29:08.760><c> would</c><00:29:08.940><c> that</c>

00:29:09.110 --> 00:29:09.120 align:start position:0%
well-formedness look like how would that
 

00:29:09.120 --> 00:29:10.970 align:start position:0%
well-formedness look like how would that
how<00:29:09.480><c> does</c><00:29:09.600><c> that</c><00:29:09.779><c> sort</c><00:29:10.020><c> of</c><00:29:10.140><c> you</c><00:29:10.620><c> see</c><00:29:10.799><c> that</c>

00:29:10.970 --> 00:29:10.980 align:start position:0%
how does that sort of you see that
 

00:29:10.980 --> 00:29:14.630 align:start position:0%
how does that sort of you see that
restricting<00:29:11.460><c> that</c><00:29:11.640><c> I</c><00:29:12.600><c> mean</c><00:29:12.720><c> uh</c><00:29:13.620><c> first</c><00:29:14.220><c> part</c><00:29:14.460><c> of</c>

00:29:14.630 --> 00:29:14.640 align:start position:0%
restricting that I mean uh first part of
 

00:29:14.640 --> 00:29:16.370 align:start position:0%
restricting that I mean uh first part of
the<00:29:14.700><c> question</c><00:29:14.880><c> yes</c><00:29:15.240><c> this</c><00:29:15.600><c> is</c><00:29:15.720><c> what</c><00:29:15.960><c> this</c><00:29:16.080><c> means</c>

00:29:16.370 --> 00:29:16.380 align:start position:0%
the question yes this is what this means
 

00:29:16.380 --> 00:29:18.649 align:start position:0%
the question yes this is what this means
this<00:29:16.740><c> is</c><00:29:16.799><c> what</c><00:29:17.039><c> will</c><00:29:17.220><c> be</c><00:29:17.400><c> allowed</c><00:29:17.700><c> second</c><00:29:18.419><c> part</c>

00:29:18.649 --> 00:29:18.659 align:start position:0%
this is what will be allowed second part
 

00:29:18.659 --> 00:29:20.149 align:start position:0%
this is what will be allowed second part
of<00:29:18.840><c> course</c><00:29:18.960><c> there</c><00:29:19.200><c> are</c><00:29:19.380><c> invalid</c><00:29:19.799><c> combinations</c>

00:29:20.149 --> 00:29:20.159 align:start position:0%
of course there are invalid combinations
 

00:29:20.159 --> 00:29:21.830 align:start position:0%
of course there are invalid combinations
there<00:29:20.520><c> are</c><00:29:20.640><c> combinations</c><00:29:21.059><c> that</c><00:29:21.299><c> don't</c><00:29:21.480><c> make</c>

00:29:21.830 --> 00:29:21.840 align:start position:0%
there are combinations that don't make
 

00:29:21.840 --> 00:29:23.210 align:start position:0%
there are combinations that don't make
sense<00:29:22.020><c> which</c><00:29:22.260><c> then</c><00:29:22.440><c> the</c><00:29:22.620><c> type</c><00:29:22.740><c> of</c><00:29:22.919><c> stability</c>

00:29:23.210 --> 00:29:23.220 align:start position:0%
sense which then the type of stability
 

00:29:23.220 --> 00:29:24.590 align:start position:0%
sense which then the type of stability
checked

00:29:24.590 --> 00:29:24.600 align:start position:0%
checked
 

00:29:24.600 --> 00:29:28.399 align:start position:0%
checked
okay<00:29:25.140><c> then</c><00:29:25.799><c> thank</c><00:29:26.159><c> you</c><00:29:26.279><c> again</c>

