►
From YouTube: Design meeting 2020.02.03: Specialization overview
Description
No description was provided for this meeting.
If this is YOUR meeting, an easy way to fix this is to add a description to your video, wherever mtngs.io found it (probably YouTube).
A
Okay,
so
I'll
go
through
I'll
I'm
going
to
go
because
we're
not
that
much
time
and
I
want
to
get
to
the
end.
I
will
skim
through,
but
please
interrupt
me
first
of
all,
I
collected
a
lot
of
links
here
is
probably
not
every
blog
post
we've,
certainly
not
every
blog
post
written
on
specialization,
but
it's
a
lot
of
the
key
ones
on
the
original
RFC
and
oh
actually,
something
I
wanted
to
write
on.
There
is
basically
in
reviewing
this
stuff
I
found.
You
know,
there's
a
few.
A
What
I
would
call
yeah
I,
don't
know
what
the
word
is:
they're,
not
exactly
unknowns
or
like
future
things
or
something
few
places
where
the
design
is
like
a
little
bit
less
than
you
might
hope.
One
of
them
is
I'll
come
to
that
in
a
second.
Actually,
let's
go
down
first
before
I.
Do
that
they
over
coming.
Let's
see
me
just
write
notes
for
myself.
One
of
them
is
that
we
have
a
somewhat
simplistic
notion
of
tree
like
specialization.
B
A
Yes,
thank
you
soon.
July
wanted
that
in
there
so
right,
the
key
idea.
I
guess
we
all
kind
of
have
this
idea,
but
that
normally
we
don't
permit
overlapping
impulse,
but
specialization
does
as
long
as
one
of
them
is
more
specific,
and
this
is
another
key
point
that
we
discussed
recently,
that
if
the
item
there's
two
conditions,
you
can
have
two
impulse
that
both
supply
a
value
for
some
function
for
some
associated
title
for
some
associated
item,
and
the
problem
would
be
done
that
you
know
you
have
two
choices.
A
You
have
to
pick
which
one,
and
so
we
require
that
one.
The
one
in
BO
is
clearly
more
specific
than
the
other,
and
the
other
is
that
the
less
specific
impulse
been
indicated
with
default,
and
the
idea
here
is
that,
essentially,
if
you
don't
see
the
default
keyword,
then
you
know
that
the
value
in
the
imple
applies.
B
A
You
do
see
the
input,
the
default
keyword
and
you
know
locally
that
the
value
might
not
apply.
If
there's
a
more
specific
one
to
be
found,
we
don't
require
you
to
signal
at
the
moment.
Is
there's
no
indication
that
you
are
overwriting
somebody
else
just
it's
just
so
some
languages
like
Java
or
whatever
do
or
have
been
moving
towards
the
main
motivation.
Probably
this
kind
of
three
listed
in
the
RFC,
more
or
less
performance
is
probably
the
single
most
common
one.
A
B
A
You
might
like
to
have
things
like
one
example
that
we
can't
add
for
backwards.
Compatibility
reasons,
but
which
is
interesting
would
be
something
like
you
know,
waving
up
the
debug
in
the
display
traits
and
maybe
we'd
like
to
say
that
if
you
just
implement
display
you
get
that
for
debugger.
Unless
you
also
implements
your
book
and
then
you
override
it,
that's
not
performance
exactly,
but
it's
similar
in
some
motion.
You.
A
So
you
kind
of
get
like
an
implementation-
that's
pretty
good,
but
probably
not
as
good
as
it
can
be,
and
then
you
can
make
it
better.
In
that
sense
it's
similar,
but
coming
back
to
performance,
this
is
kind
of
important
there's
all
right,
oh,
not
connect
performance.
One
other
thing
is
the
other.
The
other
concept
in
the
RFC
is
improving.
It's
a
sort
of
a
subtle
point,
improving
how
we
handle
it
buffets
right.
A
Well
that
gets
kind
of
generalized
in
this
RFC
so
that
it's
like
you
can
provide
more
than
one
set
of
defaults
and
they
can
be
more
narrow
right
so
that,
but
that
code
above
would
sort
of
be
equivalent
to
this
in
the
RFC,
so
that
the
idea
of
a
default
in
polis,
basically
it's
an
Impala.
It's
not
an
Impala
in
the
sense
that
it
doesn't
fully
implement
the
trait
it's
like.
A
It
contains
defaults
that
can
be
used
by
other
impulse
and
so
yeah
that's
correct,
and
so
that
can
be
useful.
So
you
might
I,
don't
know
if
this
is
a
realistic
example,
but
you
might
say
if
you
have
some
skippable
thing,
you
know
if
you're
also
random
access
and
you
can
jump
ahead
in
a
more
efficient
way.
That's
what
you'll
get
so.
A
So
here
we
might
say:
okay,
this
is
the
trait
that's,
let's
use
when
you
call
extend
and
it
can,
we
can
define
it
in
general
for
all
iterators,
but
then
we
can
make
a
more
specific
one
for
slices
where
we
can
use
mem
copy
or
whatever
people
might
need
to
have
you
copy
or
something
I,
don't
know,
but
let's
keep
it
up,
leave
it
out
for
now
and.
B
A
For
the
other
thing,
which
would
also
be
useful,
is
to
be
able
to
narrow
by
traits
so
here
I
said
yeah
all
iterators,
but
iterators
that
also
implement
trusted
len.
I
could
be
more
efficient.
In
that
case,
let's
say,
and
these
this
turns
out
to
be
a
pretty
important
distinction
for
soundness,
and
you
can
kind
of
combine
them
a
little
bit.
You
could
have
an
imported,
both
has
more
specific
on
types
and
on
traits
and
so
on.
C
A
A
What
done
this?
What
I'm
about
to
talk
about?
Hijacking?
Yes,
not
exclusively,
but
it
is
done
there
there's
really
kind
of
two
modes.
Essentially
you
the
type
checking
mode
which
is
well
when
you're
doing
the
main
type
check
also
occurs
during
bar
check,
for
example,
and
in
that
case
the
idea
is
we're,
checking
the
generic
functions
for
correctness
and
and
we're
actually
computing,
the
all
the
life
times
and
other
information
as
we
do
it
right.
So
it's
like
a
full
compilation,
and
in
that
case
we
don't.
We
don't
have
a
problem.
A
If
we're
in
this
mode,
we
don't
really
have
a
problem
with
the
full
range
of
impulse
that
we
can
have
so,
in
other
words,
if
you
can
have
impulse
like
this
one
that
require
that
something
be
in
this
case.
It
requires
that
a
given
reference
is
tick,
static
right,
and
that
would
mean
if
I
were
compiling
here,
I
might
say:
I
might
have
a
variable.
A
I
might
call
I
might
call
bar
with
some
reference
right
and
now,
what's
gonna
happen
in
this
type,
checking
phase
we're
gonna
create
a
infant's
variable
here,
because
we
don't
know
we
have
to
figure
out
what
the
lifetime
of
Y
is.
What
is
the
range
of
code
where
it
needs
to
be
live
and
when
we
call
bar,
we
find
out?
A
A
So
in
order
to
type
check
this,
we
were
basically
first
we
have
to
show
I'm
gonna
use
chalk
notation
here,
but
we
got
to
show
that
you
32
implements
the
trait
and
we
figure
out
that
this
is
true.
If
six
zero
is
tick
static,
and
so
we
wind
up
inferring
that
tick
0
equals
tick
static,
which
will
give
us
an
error
which
in
turn
triggers
an
error
here,
because.
A
A
Yeah
well,
this
is
what
makes
it
might
sound,
I
guess
in
part,
but
right
so
we
don't
know
what
the
lifetimes
are.
So
we
can't
figure
out.
In
short,
does
this
trait
apply
or
not?
Because
all
we
know
is
that
there's
a
reference
for
some
lifetime.
We
don't
know
what
that
lifetime
is
and
that's
where
the
soundness
hole
comes
in,
because
now.
A
You
might
have
a
specialization
where
we
say
we
have
one
trait,
let's
see
my
future,
if
not
the
best
names
in
the
world,
but
they
have
a
specialization
where
we
say
there's
one
in
pull
and
here's
another
one,
but
only
if
it
implements
the
trait
and
we
can't
tell
whether
this
applies
or
not
and
that's
kind
of
the
root
of
our
problem,
and
it
can
show
up
in
a
lot
of
ways
so
like
here.
It
was
pretty
obvious
because
I
just
wrote
ecstatic,
but
actually,
if
we
look
a
little
bit
lower,
we'll
see.
A
There's
some
other
examples
like
first
of
all,
I
could
have
had
at
ecstatic
bound
or
even
something
like
this
case,
where
there's
no
lifetimes
at
all
actually
violates
these
rules,
because
here
I
said
any
pair
of
types
as
long
as
they're
the
same
type.
So
if
I
had
two
references,
I
would
have
to
know
that
their
lifetimes
are
the
same.
But
if
I
don't
know
what
their
lifetimes.
B
B
A
Basically,
so
we
are
influencing
inference
and
figuring
out
if
we
can
satisfy
it,
and
then
you
know
doing
so
if
we
can,
by
choosing
types
that
satisfy
it,
which
might
then
lead
to
borrow
check
errors
or
errors
in
later
phases
as
a
pilot,
but
you
know
we're
taking
it
into
account
and
the
key
idea
is
we
figure
out
during
type
checking.
We
know
that
this
constraint
will
be
satisfied
for
all
the
types
that
this
function
is
used
with
right
every
time.
A
So
this
might
be
a
generic
function,
but
we
will
figure
out
that
for
whatever
T
this
is
called
with.
All
the
lifetime
constraints
are
met
that
occur
inside
the
body;
they
don't
create
errors,
and
so
then,
when
we're
actually
a
trans
time
and
we're
ma
no
more
fighting
for
specific
types,
we
don't
have
to
prove
that
again
because
it's
already
been
proven
for
us
in
the
same
way
that
we
know
that
the
traits
are
implemented
in
general
and
the
methods
must
be
available,
and
so
on.
Does
that
make
sense.
B
A
So
one
of
the
most
insidious
parts
of
this
thing,
I'll
point
out,
is
that
the
problem
is
often
not
like
local
or
doesn't
have
to
be
local.
So
if
you
hear
in
all
these
cases,
I
kind
of
wrote
the
implementations
of
citrate
which
fail
to
the
parametric
directly,
but
you
can
also
have
some
that
fail
to
be
if
there
and
ultimately
depend
on
lifetimes
but
indirectly
right.
So
here
it
does.
This
dependency
comes
from
some
other
tradable,
which
creates
a
bunch
of
pain.
When
you
try
to
solve
this
in
any
local.
What.
A
To
times
like
this,
would
this
is
obviously
some
other
tree
I
guess
because
yeah
this
anytime,
that
the
type
parameters
are
kind
of
repeated,
but
one
thing
that's
important
is
that
it
doesn't
apply
a
case
like
this,
which
is
to
say
we
don't
care
about
what
appears
inside
the
employee.
We
only
care
about
the
impeller
right.
What's.
B
A
Is
no
enforcement
trans-time
like
when
we're
generating
code,
but
we
don't
need
to
enforce
it
because
the
type
checker
already
proved
it,
and
the
important
point
would
be
that
we
know
that
that
the
the
the
what
comes
inside
the
employee
doesn't
affect
which
input
we
use
is
sort
of
where
it
comes
down.
To
so
like
we
will
be
able.
B
A
And
the
reason
I
bring
this
up
is
that
the
distinction
like
this
is
we
typically
call
these
input
types
that
appear
in
the
implementer,
and
these
are
output
types
associated
types,
okay
and
there's
a
kind
of
flexibility
in
how
you
choose
to
model
your
traits.
Sometimes
people
prefer
to
put
the
put
things
all
in
the
imple
header,
and
sometimes
they
use
associated
types
and
the
distinction
matters
a
lot
for
it
for
this
purpose.
None
like
you
really
want
to
use
associated
times
when
it
makes
sense
and.
A
A
C
D
B
A
Right
and
even
even
the
bounds
here,
actually
it's
true
that
in
the
compilers
D
sugaring,
presently
we
convert
this
to
to
a
format
like
that.
Yeah,
however,
I
don't
think
that's
actually
necessary
thing
to
do.
I
don't
know,
I
have
to
think
about
it.
Let's
make
some
models
model
of
the
language
actually
I
think
it's
actually
makes
it
more
complicated,
but
I've
come
to
think
over
time,
but
depends
on
your
point
of
view
with.
A
A
A
A
B
D
A
A
A
There's
like
the
type
checker
might
wind
up
with
one
of
two
answers,
depending
on
how
much
it
knows
about
that
lifetime
so
like,
if
you
had,
the
type
checker
would
be
consumed.
Okay,
the
type
checker
would
be
conservatively
correct,
but
like,
if
you're
in
the
context
like
this,
it
might
not
know
you
know
it
would
wind
up.
It
would
not
be
sure
whether
this
imple
applies
or
not.
So
it
would
be
conservative
because
it
would
fall
back
to
this
generic
Kimball
and
see
the
default,
and
it
would
know
that
there
might
exist
a
specialization,
but.
B
A
A
A
A
For
one
thing,
it
doesn't
solve
the
Equality
problems
that
we
mentioned
earlier
and
for
another
thing
at
least
right
now,
the
type
checker
kind
of
randomly
randomly
it
picks,
the
smallest
lifetimes
it
can
that
meet
the
constraints
that
it
sees
and
now
there's
a
sort
of
a
choice
like
if
it.
If
you
had
a
function
where
you
had,
you
had
something
where
it
can
be
static,
but
it
doesn't
necessarily
have
to
be
like
this.
Then.
A
Then
there
is
a
kind
of
choice.
The
type
checkers
making
about
is
this
going
to
beat
ecstatic
because
it
came
from
static
data,
or
is
it
going
to
be
less
because
it's
not
used
in
us
in
a
scope
where
static
is
required
and
it
right
now
we'll
pick
less
than
that
case.
We
will
be
choosing
what
associated
I
forget
hearing
it's
just
kind
of
arbitrary,
not
easily
explained,
and
you
really
don't
want
us
to
pick
the
largest
lifetime,
because
that
will
produce
all
kinds
of
bogus
that
doesn't
make
sense.
A
There's
lots
of
borrowed
checkers,
so
so
there's
a
kind
of
ambiguity
where
type
checker
has
freedom
of
what
lifetime
to
pick
and
it
currently
smaller
I
guess
the
bottom
line.
Is
we
don't
want
to
expose
just
that?
If
we
had
exposed
information
like
this,
that
would
have
prevented
us
from
doing
nll.
It
would
prevent
us
from
making
future
improvements.
We
want
to
keep
the
type
checkers
for
yummier
to
make
choices.
B
B
A
A
D
B
A
So
right
so
now
we're
coming
to
the
the
meat
of
it.
What
what
can
we
do
about
this
problem?
I?
Think
the
current,
oh
and
I
should
add.
One
thing
is
we:
we
are
starting
to
see
bugs
around
this.
In
practice,
people
are
adding
specializations
that
depend
on
lifetime,
parama
tricity,
without
realizing
it
and
that's
not
great
standard
library,
and
in
particular
it
seems
like
we
have
one
the
most
annoying
part.
Is
it's
not
even
a
performance
question?
A
That's
actually
it
appears
to
be
part
of
its
behavior,
which
is
worse
because
you
can't
just
rip
it
out
for
sure
to
find
a
solution.
So
so
what
was
this
idea?
A
I
think
the
last
time
I
think
it
was
after
the
2018,
All
Hands
or
something
I
wrote
this
blog
post
always
applicable
impulse,
and
the
core
idea
was
that
we
only
really
have
problems,
because
when
the
specialization,
when
the
imple
that
is
doing
the
specializing,
is
adding
new
constraints
that
the
bay
simple
or
the
types
involved
in
the
info,
don't
already
prove
for
you
right.
So
essentially.
A
As
long
as
you
limit
yourself,
that's
what
this
concept
of
always
applicable
means,
if,
if
you
in
the
simplest
version,
if
you
look
at
the
types
that
the
IMP
applies
to-
and
you
say
for
every
instance,
any
instance
of
those
types,
the
symbol
is
always
going
to
apply,
then
you
don't
have
a
problem.
So
an
example
like
this
was
in
our
motivating
examples.
An
example
like
specializing.
Two
slices
of
you
is
okay.
A
As
long
as
you're
specializing
to
all
possible
slices,
it
would
not
be
okay
if
you
were
adding
some
constraint
on
you
like,
it
has
to
be
slices
of
ordered
things
or
slices
of
copy
things.
That's
not
good
because
well
copy,
it
might
be
a
little
bit
special,
but
it's
not
presently.
Actually,
that's
not
good,
because
somebody
could
implement
copy
for
my
type
of
ant
ecstatic,
for
example,
and
that's
currently
allowed,
although
we
don't
like
it
when
you
do
that,
what's
the
Salamis
buck
around
it,
okay
close
it
in
second.
A
Sorry,
so
that's
the
kaity
of
an
always
applicable
imple.
You
can
extend
it
slightly,
but
I'm
not
gonna.
There
were
a
few
possible
extensions,
but
the
key
thing
is
it
doesn't
handle.
You
know
this
use
case
that
we
want
to
support
of
like
where
T
is
a
trusted
length
and
that's
kind
of
annoying
and
in
particular,
that
that's
exactly
what
six
seven
one
nine
four
was
trying
to
do
was
to
write
again
pull
that's
dated
on
implementing
multiple
traits
and
not
based
on
being
a
specific
type.
D
A
So
what
what
this,
what
this,
what
this
concept
was
is
currently
we
have
one
kind
of
bound
which
is
like
t
trait,
and
that
says
t
implements
trade
right,
but
Aaron
proposed
adding
another
kind
of
bound
which
I'm
just
gonna
write
it
like
this
I
think
the
is
pretty
obvious
that
this
syntax
and
name
are
not
ideal
and
so
we'll
leave
the
bike
set
aside.
But
what
with
this
for
the
moment,
what
this
means
is
basically
T
implements
trait
with
an
always
applicable
in
pull.
A
So
it's
a
subset
of
the
larger,
the
normal
bound
which
I've
written
here
in
chalk
notation.
So
if
you
know
that
specialized
T
trade,
then
you
know
that
the
trade
is
implemented.
Well,
you
don't
know
the
other
way
around,
because
if
you
know
that
it's
implemented,
you
don't
know
that
it
was
within
always
applicable.
It
might
be
with
some
other
and
there's
one
subtle.
Maybe
it's
worth
going
through
some
examples,
because
there's
a
kind
of
subtle
point
that
I
realized
in
reading
the
post.
A
Let
me
show
you
what
I
mean
so
imagine
that
I
have
right,
I
can
make
an
Impala
is
clearly
not
not
always
applicable
or
a
lifetime
dependent.
We
have
a
bunch
of
examples,
above
maybe
at
references
to
ecstatic.
Maybe
it
has
the
same
type
parameter
twice
and
or
I
can
make
it
and
bullet
is
clearly
always
okay,
which
is
what
the
post
outlined
always
applicable,
and
it
talked
about
some
of
the
rules
for
that,
but
there
are
also
these
kind
of
neutral
impulse
that
are
okay.
If
you
can
sort
of
read
either
way.
A
Potentially
so,
if
you
just
say
like
I,
implement
bar
as
long
for
all
food
types,
you
could
say
that
well,
when
you're
trying
to
test
as
far
as
implemented
in
a
specialized
compatible
way,
then
you
will
then
sort
of
propagate
that
to
the
where
clause
so
that'll
be
true.
If
t
foo
is
implemented
in
a
specialized
compatible
way
and
then
so
then
ultimately
depends
on
what
the
base
sort
of
belief
impuls
are.
Are
there
any?
A
A
So
when
it
comes
down
to
then
is
when
you're
writing
a
specialization.
If
you
want
to
add
any
trade
balance,
you
would
have
to
use
this
sort
of
mode
to
do
so.
So
you
could
say:
I
extend
T
for
all
T
the
iterator
as
long
as
they're
trusted
Lin
and
you
might
be
even
simpler
if
you
had
to
do
it
for
all
Craig
downs
period,
but
it's
not
strictly
necessary.
That's
kind
of
the.
A
A
A
D
B
A
So
let
me
I
might
be
true,
well,
I
feel,
like
I,
haven't
really
explained
very
well,
might
be
shock
to
people
we're
all
following
why
you
could
I
couldn't
mix
these
two
kinds
of
bounds,
so
maybe.
A
To
try
and
make
it
a
little
clearer
one
of
them
might
be
like
imagine
that
I
have
I
know
this,
isn't
how
hash
said
is
defined,
but
just
imagine
if
it
was
how
hash
that
is
defined,
that,
in
the
definition
of
has
that
I
specified
that
all
the
keys
have
to
be
hashable
now
I
might
have
some
I
might
have
some
imple.
That
is
true
for
all
T
and
I
might
have
an
impulse.
A
That
is
true
for
hashed
out
of
K
we
are
K
hash,
and
so
the
important
point
is
this:
this
is
not
a
specialized
street-bound
right.
It's
a
full
normal
trade
bound.
However,
I
also
know
that
I
always
know
when
I
write
an
input
that
all
my
types,
all
my
input
types
are
well-formed,
like
the
person
who
is
using.
A
That
imple
has
to
prove
that
already
that's
part
of
the
way
that
the
rest
type
system
works,
and
in
that
case
I
also
already
know
the
K
implements
hash
in
the
full
sense,
because
otherwise
the
type
wouldn't
be
well
formed.
So
I
can
actually
write
it
here
in
it.
It's
okay,
but
if
I
were
if
I
were
to
write
today,
hash
plus,
let's
say
Ord
I
would
have
to
write
specialized,
ordered
or
whatever,
because
that
does
not
follow
from
my
type
definition.
A
A
C
A
D
D
A
D
A
Yeah
that
we
think
about
one
thing,
I
would
add
is
one
minor
thing
is
if
we
had
implied
bones
which
we
haven't
shipped
and
we
have
some
outstanding
questions
around.
But
if
we
did,
one
of
the
goals
for
implied
bounds
was
to
make
it
so
that
bounds,
like
kay
hatch,
didn't
have
to
be
bitten,
in
which
case
they're
always
applicable,
rules
are
kind
of
nice.
A
It's
basically,
if
you
don't
have
any,
where
clauses
or
all
the
where
clauses
or
specialized
closes,
because
all
the
other
stuff
follows
from
implied
pounds
in
the
first
one,
but
in
the
one
last
thing
which
we
said
since
we're
in
the
last
end
of
the
meeting
one.
A
I
had
while
reviewing
this
is
that
we
have
the
notion
of
always
applicable
already
in
the
drop
check
which
may
help
us
both
in
implementation,
but
also
in
explaining
things.
So
you
cannot
write,
implement
drop
form.
I
struck
with
ecstatic,
for
example,
for
exactly
the
same
reason
that
that
we
don't
want
you
to
have
it
in
specialization
that
we
won't
know
whether
to
run
this
in
trance.
D
I'm
thinking
about
the
minimal
steps
to
to
move
forward
right
right
now,
I
think
it
would
be
good
to
add
the
links
or
some
sort
of
enforcement
that
we
can
use
in
this
town
library
to
at
least
not
not
add,
more
problematic
specializations
and
like
have
a
have
a
moratorium
on
using
from
adding
new
specializations
till.
We
have
that
I.
A
D
C
D
B
A
Think
another
thing
would
be
writing
up.
In
my
view,
it
would
be
good
to
revise
the
specialization
RFC
and
like
include
this
material
or
try
to
have,
if
not
the
art
like,
maybe
not
as
in
the
phone
where
I
see,
but
some
kind
of
I
would
like
a
canonical
thing.
That
includes
the
defaults,
this
these
concepts
and
puts
it
together
and
we
probably
start
with
the
artsy
in
the
starting
point,
but
so
that
we
have
a
like
reference
to
go
to.
We
say:
okay,
what
is
the
rules
now
right
now?
That
is
a
pretty
disjointed.
A
A
C
D
A
C
C
A
Just
saying
that
the
local
check,
when
you
say,
filter
out
concrete
types
like
really
you
have
to
look
for
you're
looking
for
things
like
is
it
is
the
perimeter
repeated
like
I,
think
many
specializations
still
have
some
type
rumors.
That
guests
are
missing
because
they're
implemented
for
patch
set
of
prefer
avec
of
tea
or
something-
and
this
is
not
enough
to
say
it-
must
be
fully
hungry.
That
would
be
pretty
strict,
though
you
could
do
that.
A
A
We
shouldn't
do
is
stall
for
a
long
time,
I'm
getting
a
perfect
thing,
I
think,
but
if
we
can,
you
should
figure
out
what
we
can
get
any
reasonable
in
that
time.
Let's
just
discuss
this.
This
is
like
I
veneering
question.
I
think
we
should
discuss
it
afterwards
done
dead
in
the
last
like
before
we
close
the
call
and
more
curious
to
know
whether
I
guess
there
were
lingering
questions
about
meaning
or
design
that
we
could
discuss.
Let.
C
Me
know:
I'll,
be
honest,
I,
don't
understand
a
specialized
predicate,
because
what
was
presented
here,
I,
don't
accept
lis
understand
what
that
adds.
So
for
the
ample
that
you,
you
know,
you
described
it
as
being
difference
in
terms
of
you
know
a
directionality
in
the
application,
but
I
don't
actually
understand
why
that
is
no
I,
don't
understand
what
it
means.
Yeah.
C
C
C
A
A
Time
to
dive
into
the
exact
details,
but
yeah,
that's
the
idea
is
this:
you
sort
of
screen
out,
which
means
you
might
get
I
mean
you
will
be
potentially
you
could
imagine
being
surprised.
It's
certainly
potentially
surprising
that
you
don't
really
know
what
this
means.
You're,
just
gonna
think
it's
like
a
variation
on
or
even
you're
like.
Well,
why
isn't
this
triggering
might
type
this
word
and
the
reason
is
that
your
type
is
only
sometimes
depending
on
right,
right.
C
A
I
wanted
to
bring
out
the
way
and
get
to
but
I'll
just
plant.
The
seed
is
that
you
know
we're
talking
about
additional
changes
and
so
on.
I
think
it's
plausible
to
imagine
like
starting
to
lend
this
one.
We
have
to
be
tied
to
the
addition,
even
necessarily
trying
to
warn
people
about
impulse
that
would
be
screened
out
and
require
them
to
be
marked
in
some
way.
That's
something
I
would
only
want
to
be
hard
to
know
without
measuring
how
often
they
occur,
but
I
think
we
could
start
to
think
about.
A
A
A
D
C
Won't
you
know
me:
Nico
I
wanted
to
have
variants
annotation,
so
I'm
not
gonna
ejected
this,
but
I
do
think
that
I
will
I
can
imagine
some
people
saying
why
don't
we
just
infer
it,
which
is
what
the
RC
I
guess
said
like
right,
you
can
go
figure
out
which
which
balance
are
introduced
and
do
the
same
thing,
but
it's
bad
error
messaging.
You.
D
A
D
A
C
A
Okay,
I
imagine
it
I
mean
I
that
was
kind
of
why
I
brought
up
this
question
of.
Should
we
allow
mixing
and
stuff
it's
exactly
that,
because
if
you
we
don't
know
what
I
feel
level
yeah
we'll
find
out,
I
I
guess
at
minimum
I,
don't
like
this
keyword
in
this
location
because
it
doesn't
it's
okay,
it's
just
very!
It
doesn't
carry
any
intuition
for
me,
the
easy
part!
Sadly,
it's
like
yes
I
would
like
a
name
that
carried
some
intuition.
We
could
come
up
with
about
that
right
now.