►
From YouTube: .NET Design Review: Index and Range
Description
A
A
Last
time,
when
we
talked
about
the
next
range,
I
was
under
the
impression
that
shows
up
in
under
an
hour
the
whole
hour,
and
we
did
one
review
a
single,
acre,
I
think
so
this
time
you
want
to
really
focus
on
the
API
shape
and
maybe
also
text
and
all
some
things
that
we
think
are
missing.
So
we
can
add
this
to
do
this,
so
you
just
have
to
me,
but
they
weren't
here
last
time.
A
So
when
we
reviewed
this
crystal
part
up,
one
question
which
was
do
we
need
the
types
and
all-
and
we
talked
a
little
bit
about
that
in
the
notes
for
the
API
review.
I've
tried
to
capture
his
general
proposal,
which
was
imagining
a
low-level
from
entire
black
span,
where
you
really
don't
want
to
have
the
overhead
that
wrench
and
index
impose
a
new
meaning
the
whole.
You
know
duplicate
bounds,
checking
in
particular
that
he's
concerned
about
the
digit
cannot
get
rid
of.
A
So
the
idea
would
be
that
if
you
care
about
performance
for
span
and
other
things,
then
we
would
always
have
the
in
base
overloads
anyway,
that
you
can
call
and
then
he
said
like
that's
unfortunate,
because
it
means
you
cannot
use
the
language
syntax
at
all.
Just
for
the
point
for
doing
simple
stuff,
so
he
was
proposing.
Imagine
some
sort
of
attribute
on
the
method
or
the
parameter.
Where
you
can
say.
A
Well,
you
can
add
the
cold
side
kind
of
do
the
dot,
dot,
syntax
and
the
compiler
base
is
flat,
demented
two
arguments
right
and
then
afterwards
and
I
said
well.
The
problem
would
that
would
be
that
it
doesn't
compose.
Well
of
you
know,
because
it's
not
an
expression.
You
basically
have
like
special
syntax
on
the
call
side
then
basically
proposed
at
well.
A
How
can
we
get
this
to
a
better
place
for
some
performance,
oriented,
api's
and
I?
Think,
given
this
proposal,
I
feel
like
we
can
have
a
very
smooth
transition
there.
If
we
feel
like
we
need
to
do
that
and
for
now
having
the
overload
seem
fine.
The
only
thing
is,
we
add
these
parameters
or
this
these
special
attributes.
A
You
probably
want
a
rule
where
we
say:
if
you
have
them,
we
prefer
them
over
the
range
based
or
index
based
methods,
because
otherwise,
if
we
ship
span
today
that
takes
range
or
index
and
later
on,
we
do
the
other
thing.
Then,
while
we're
screwed
we're
still
calling
the
other
ones
and
you
don't
get
the
performance
benefit,
but
I
think
that's
more
like
a
designer.
How
the
feature
would
would
work
at
that
point,
so
I
would
table
this
for
now.
A
A
D
E
B
D
F
A
True,
well,
I
think
it
would
be
that
you
should
too,
let's
say
for
a
second:
we
ship,
both
methods
but
slice
method
it
takes
in
the
size
of
the
range
right
I.
Think
we
wouldn't
introduce
new
language
that
you
would
just
say
we
provide
the
developer,
an
attribute
that
they
can
apply
to
the
methods
which,
if
they
do,
that
the
compiler
would
now
prefer
the
other
overload
but
there,
but
the
library
also
has
to
do
something
to
their
code.
A
A
A
Like
something
that
we'll
have
to
imagine,
let's
do
anybody,
but
let's
I
mean
so
basically
you're
pointing
out.
We
should
review
this
before
we
ship
three,
all
right,
so
that
we
make
sure
that
if
there
is
a
break
and
change,
we
can
at
least
decide
not
to
ship
certain
methods
now
so
there
we
later,
but
that's
yes,.
B
D
F
B
A
Yeah
I
think
it's
problem.
It
might
be
not
effective
like
the
way
they
were
originally
done,
but
the
obj
was
a
constructor
or
was
some
I
think
we
also
had
someone
had
Boston
arguments
in
all
cases
and
I
think
that
yeah
at
this
point
it
should
probably
be
similar
to
empty
or
I.
Just
like
just
aesthetic
field,
yeah
yep.
D
B
B
F
I
So
I
had
a
question:
I
you
dropped
out
for
a
second
or
like,
as
I
may
have
missed
it,
but
one
of
the
right
right
now
there'd
be
no
difference
like
right
now.
The
implication
of
ranged
on
all
does
new
range
new
index
new
index,
but
in
theory
it
could
just
be
stored
in
the
static
we'd
only
field,
and
we
would
avoid
all
of
the
argument
checking
and
whatnot
every
time
all
is
called
with
the
constructor
or
the
create
method.
If
the
compiler
is
just
generating
the
equivalent
of
range
not
create
new
index
new
index.
H
I
I,
don't
mean
I'm
not
worried
about
all.
It
was
the
if
the
compiler
consolidates
all
of
its
access
to
the
single
instructor
or
the
single
create
method.
Yeah,
there's
not
much.
We
can
do
about
that
other
than
have
the
JIT
be
really
really
good
at
right.
There
you
see
in
cons,
you
know
in
whining
everything
eliminating
branches.
All
that
has
done
so.
I
B
D
Go
yeah
now
right
so
I
kind
of
anticipated,
which
it
wouldn't
never
seen
through
a
struct
constructor
because
it
really
should,
but.
D
Mainly
I
was
thinking
I,
don't
see
a
way
that
this
could
be
observable,
except
for
the
fact
that
the
all
method
would
have
to
exist,
but
there's
nothing
wrong
with
a
well-known
member,
not
necessarily
existing,
so
it
we
can
optimistically.
Do
it
right
in
the
same
way
that
we
did
this
for
a
dot
empty
and
friends
that
we
emit
a
parens,
that's
not
filled
in
with
array
dot
empty,
but
only
if
a
ray
dot
empty
is
present.
We
can
check
v1
to
create.
D
We
don't
like
just
with
the
constructor
with
a
range
constructor
and
then,
if
the
JIT
can't
do
it,
we
can
add
a
well-known
member
for
all
with
whatever
it
ship
size.
And
then
you
know,
the
nice
thing
is
that
the
core
FX
can
kind
of
decide
what
they
want.
That
API
to
look
like
and
finalize
it,
and
then
we
can
come
in
later
and
just
kind
of
accept
whatever
X.
I
B
F
F
D
A
D
I
D
I
D
I
D
H
D
D
But
I
understand
it's
just
that
we,
you
know
it's
easier
since
we
have
to
have
a
code
path
for
index
anyway,
it's
easier
to
just
go
through
the
same
code
path
and
reduce
the
probability
of
bugs
I
mean
there's
like
a
lot
of
I
just
found
the
bug
actually
because
of
this
code.
Spit
I
did
where
I
made
like
a
subtle
change,
and
it
turns
out
that
that's
observable
through
ref
variables.
F
A
Logically,
the
way
to
think
about
this
right
but
luxury,
is
the
compiler
pretends.
That
array
has
an
index
that
it
takes
an
index
and
just
write
code.
That
doesn't
do
that
right.
So,
but
in
a
normal
or
in
your
own
custom
time
you
would
actually
have
an
index.
So
that
takes
an
index
yeah
and
then
you
implementation
has
to
do
the
math
right,
so
the
user
never
has
to
do
the
math
yeah
so
you're,
it's
only.
Then
we
see
whether
it
has.
A
D
D
So
if
you
have
like
some
array-
sorry
Steven
I,
don't
think
you
can
see
this.
You
can
see
we
can.
We
can
type
it
up
into
this
problem.
Don't
worry
about.
I
can
guess,
okay,
so
you
write
on
an
array,
hat
0
or
1/2
through
your
ever
right.
So
fundamentally,
what
this
is
going
to
do
is
just
going
to
go
through
two
passes.
Go
through
initial
binding
3
is
where
we
see.
D
So
the
suggestion
of
like
hat
3
and
this
statically
turning
into
something
different,
is
essentially
saying
in
your
lowering
phase.
Instead
of
just
taking
the
normal
code
path,
where
you
look
for
an
index
and
then
you
turn
it
into
a
series
of
operations
on
that
index,
statically
realized
that
the
thing
that
you
have
in
hand
is
a
constant
value
that
was
written
literally
pull
it
apart
into
its
constituent
values
and
then
emit
specialized
code
for
that
constant.
So
that's
not.
D
This
isn't
like
a
new
way
of
doing
things.
It's
just
like
additional
code.
It's
a
specialized
code
map
and
so
the
answer
for
any
specialized
code
path
and
the
compiler
is.
Is
it
worth
it
because
this
generalized
code
path
works
for
everything,
then
the
only
question
will
be?
Is
it
worth
it
and
that's
a
question
that
we
can
ask
and
then
answer
based
on
data
we.
B
Try
super
hard,
but
we
will
try
they're,
well-defined
cases
where
we
do
so
that
if
you
never
carry
the
tool
itself
around
and
never
refire
tuple
value,
we
will
we
will
not
require
it
that
has,
but
that
had
to
do
with
timing
issues
around
who
could
get
at
the
tuple
types.
When
the
language
feature
came
out,
I
don't
think
we
want
to
do
something
similar
here
or
they
just.
I
Rinse,
it
said
it
can
be
done
with
later.
My
my
question
is
particularly
because
those
thing
about
ask
you
know:
common
access
patterns
today
and
erase
of
a
radar
length.
Minus
1
is
a
pretty
common
thing
that
you
see
done
this,
like
you
know
the
last
element
or
something,
and
so
if
you
people
are
going
to
start
writing
a
race
so
at
one
instead
of
a
race
subarray
dot
length,
one
just.
D
You
know
it
occurred
to
me,
ya
know
it's
and
it's
I'm
not
saying
we
won't.
Do
it
I'm,
just
saying
that
you
know
we
should
consider
it
as
with
the
full
knowledge
of
what
it
entails
and
the
trade-offs
like,
for
example.
What
what
if
it's
hack
negative
one,
give
the
make
sense
yeah
would
throw
we
want
the
compiler
to
generate
a
throw.
That
seems
really
bonkers.
You
should
probably
write
a
compile
time
error
for
that,
but
oh
wait.
We
can't
provide
compile
time,
errors
and
and
lowering
that
needs
to
be
in
binding.
A
There
is
like
I
think
it
would
be
nice,
but
I,
don't
think
that
it's
like
required
to
fail
for
this
at
compile
time.
But
it's
not
like
anything
bad
happens.
It's
just
said
you
have
nonsensical
code
and
we
cannot
detect
all
usages
of
nonsensical
code
anyway,
but
it's
the
best
effort,
I.
Think
if
you
at
all
so
I
think
to
me,
depression
was
more
like
do.
A
It's
basically
the
line
where
you,
where
you
make
a
mistake
right,
because,
regardless
of
what
you
do,
the
receiver,
usually
when
you
do
it
in
line
with
an
expression
rate
index
into
an
array
or
your
call
substring.
That
message
would
throw
the
index
out
of
range
exception
right
now,
and
we
just
do
it
at
the
time
you
do
there.
A
B
Of
the
it's
the
price
we
pay
for
not
having
two
extra
bits
in
the
instruction
right,
we
could
have
index
completely
collect
any
integer
and
and
have
a
bit
next
to
it,
that
is
from
end
or
from
beginning,
and
we
have
two
of
those
adding
up
to
two
indexes
and
like
two
integers
and
and
two
bits
in
the
in
the
range
and
then
we
wouldn't
need
to
do.
Then
we
wouldn't
need
to
check
yet
we
could.
We
could
delay
it
until,
but
look
at
that.
B
I
F
H
H
B
B
When
you
have
a
collection
of
a
given
length,
you
could
passing
a
length,
that's
a
parameter
and
you
can
get
an
int
out
which
is
sort
of
the
computed
index
from
beginning
based
on
a
given
length.
So
we
could
offer
the
helper
method
of
computing
it
for
you.
You
don't
have
to
write
the
logic
in
your
own
implementation.
Yes,.
B
B
A
D
A
B
H
Doesn't
actually
exist
not
far
away?
Actually,
I
was
playing
around
that's
in
c-sharp
code,
a
raves
right
now
also
Emily's,
a
c-sharp
compiler
allows
you
to
use
a
long
as
an
indexer
into
an
array
of
estimate.
Would
we
need
to
account
for
that
here
as
well,
like
your
conversion
from
long
to
invent,
doesn't
care
for
the
original
discussion
on
this
I?
Don't
know
what
the
scenarios
are
pretty
using.
B
I
remember
in
the
beginning,
when
Christopher
also
attended
some
of
the
design
and
c-sharp
design
meetings,
and
you
were
there
too,
we
did
discuss
having
an
index
and
a
long
index
having
a
second
type,
and
we
just
realized
that
scenarios
for
that
were
probably
zero.
So,
rather
than
trying
to
have
completeness
on
that,
we
would
just
wait
and
see
if
anybody
came
and
said
we'd
crucially
on
this,
so
we
were
kind
of
a
aware
of
it,
but
yeah
advocating.
H
G
K
H
A
I
think
that's
a
different
class,
but
I
think
developers
are
kind
of
used
to
the
fact
that
in
in
practice
only
means
half
of
the
thank-yous,
because
almost
there's
nothing
takes
negative
values.
But
I
don't
know
from
long
to
it
seems
fairly
long
like
I
mean
because
now
we're
like
well,
you
care
about
it
like
index
value
plus
1
right.
The
scenarios.
H
Where
I've
seen
it
happen
and
I
don't
know
if
these
are
good
scenarios
is
a
kind
of
what
Tanner
said.
I'm
interacting
with
native
code.
I
have
two
pointers:
I
subtract
them
the
result
from
subtracting.
Few
pointers
across
all
dawnette
platforms
is
along
right,
even
if
I'm,
in
a
32
the
process
and
now
I
use
that
as
an
index
into
something
else.
Yeah.
B
H
A
B
C
H
A
Yesterday,
only
Jeremy,
Jeremy
and
I
are
like
I
feel
like.
If
you
do
point
arithmetic,
like
I,
think
you'll
pass
the
point
where
yeah
I
would
say:
convenience
is
your
biggest
worry,
I
think
you
because
Vargas,
hopefully
they
could
down
pointing
to
I.
Think
that
you
like
this
was
just
an
example
of
where
you
might
get
along
fun.
Yeah,
that's
fair,
I,
think
I.
A
Think
there's
in
the
Simpson
area
came
up
before
was
a
spin
head
in
the
context
of
pipelines
where
they
basically
use
buffers
that
are
concatenated
so
like
every
index
they
have
must
be
along
because
they
don't
know
how
long
the
request
goes,
but
any
given
point
in
time.
They
don't
exceed
the
the
window
size
or
next
value,
but
everything
takes
along
I.
D
H
D
F
D
A
H
B
A
L
A
M
B
M
B
Think
the
expectation
is
when
I
have
an
index
I
if
I
have
operators
directly
in
the
index,
I
shouldn't
have
to
care
whether
it's
an
abstraction
over
whether
it's
from
end
or
from
beginning
and
I
mean
it.
It
should
have
an
abstract,
meaning
that
makes
sense
for
all
indexes
right
and
the
only
useful
meaning
for
those
would
be
that
it
takes
you
two
in
one
direction
or
the
other
direction.
This.
A
Don't
think
it's
helpful
if,
if
I
do
plus
one
on
that
one,
it
might
go
left
or
right
depending
on
how
it
was
initialized
because
like
to
me
the
way
index
works
is
head
or
non
hat
is
just
the
way
I
give
you
the
video,
but
it's
still
the
same
value.
Like
means
you're
still
talking
about
slot
number
455
in
the
array
whether
I
gave
it
to
you
relative
from
end
or
whether
I
gave
it
to
you
absolute
from
start
all
right.
M
A
That
is
like,
so
the
reason
why
I
think
operators
might
be
useful
is
that
if
you
don't
have
them
like
very
common
operations,
you
do
with
indices,
basically
stopped
working
right,
because
as
soon
as
you
as
soon
as
you
have,
let's
say
you
had
five
and
now
we
want
to
say
you
know
minus
ten
or
something
on
it.
You
can
only
do
that
now.
You
have
to
like,
if,
because
there's
no
arithmetic
to
find
on
those
guys.
B
We
think
it
is
common
to
do.
Cuz
I
was
thinking
about
okay,
I'm
writing
my
own
for
loop,
but
if
I'm
writing
the
for
loop
I
need
to
have
an
if
I'm
writing
a
loop.
I
need
to
have
an
in
condition
of
some
sort
right,
which
means
I.
Have
a
collection.
I
have
a
concrete
collection
that
I'm
falling
over
and
that
one
has
a
length
and
I'm,
probably
better,
off,
converting
and
converting
it
to
an
int
and
and
taking
that
up
to.
A
Them
I
guess
that's
fair,
but
the
thing
is
like
the
way
I
see
those
like
when
you
do
parsing
code.
But
very
often
you
say
you
know
first
name,
comma
last
name
I
didn't
see
you
say
well.
The
first
name
ends
there,
but
then
I
know
I
have
a
comma
and
I
called
you.
I
want
to
plus
equals
two
on
that
one
out,
but
no
it's
like
well
I
have.
F
A
The
receiver
doesn't
know
I'm
talking
about
that.
I
mean
the
person
that
uses
string
either
just
called
substring
that
takes
index
right
or
substrate
that
takes
range.
They
want
to
do
their
computation
on
or
the
holy
Express,
the
first
name,
how
to
express
the
last
name:
Auto
Express,
the
comma
right
and
at
some
point
in
there
you
do
arithmetic,
where
you
say:
yeah
nos
man
starts
to
two
things.
After
the
first
name,
it
seems.
D
Reasonable,
especially
for
range
to
be
able
to
like
say,
yeah
I,
want
to
move
the
start
position
in
the
range
a
little
bit
forward
or
a
little
bit
back
right
and
for
that
to
work.
You
have
to
have
arithmetic
on
index,
because
otherwise,
because
it's
based
on
index,
so
it
has
to
be
able
to
move
it
right
forward.
F
A
F
D
A
F
A
Seems
for
math,
though
that's
kind
of
unfortunate,
because
you
really
want
to
do
the
operation
and
then
check
where
you
land
inside
you
don't
want
to
do
it
before
you
do
the
operation.
That's
very
account
intuitive
yeah.
One
thing
forecasting
it's
kind
of
different
because
you
you
may
not
cast
when
you
just
call
the
method
and
then
the
cast
happens
as
part
of
the
method
replication.
So
that's
not
the
point
that
you
expect
any
anything
to
happen.
But,
like
look
arithmetic,
it
seems
odd.
That
plus
would
throw.
F
D
The
way
I
think,
maybe
that
statement
is
true
for
where
we've
ended
up,
but
I
think
that
from
a
design
perspective,
that
is
absolutely
not
true.
That
I
would
expect
fixed
length
integers
when
you
overflow
or
underflow
to
swirl
by
point
and
that,
in
fact,
all
my
preference,
if
we
were
redesigning
everything
from
scratch,
would
be
that
every
single
one
of
our
arithmetic
operators
throws
on
out
of
balance
values.
So
I
would
agree
with
that
setting,
but
I.
A
Think
the
problem
is
an
ins.
Is
that
if
you
think
of
index
as
a
more
convenient
way
of
in
in
32,
and
then
you
wouldn't
expect
it
to
throw
negative
by
this,
you
wouldn't
expect
this
to
throw
on
you
know
your
venue
is
25,
because
the
collection
is
25
and
then
you
add
one
and
now
you're
out
of
balance,
but
you
would
generally
expect
to
do
the
arithmetic
you
get
away.
Then
you
compare
that
value
to
whatever
bounds
you
have,
rather
than
the
opposite
right,
but
the
problem
is
in
our
essence.
A
We
can't
represent
certain
images.
We
can
represent
negative
radius
and
we
can
represent.
You
know
past
the
end
right.
So
the
only
the
only
option
we
have
is
through.
So
that
sense
indexes
is
not
like
implicit.
Would
we
could
add,
try
methods,
I,
just
don't
think
it's
worth
it.
I
prefer
no
I
mean
at
that
point.
Like
you
know,
when
you
have
a
try
method,
you
have
effectively
defeated
the
point
of
having
operators
right,
because
no,
this
really
gets
ugly
to
say,
plus
1/2
I
add
one
twice:
we
move,
one
I
was.
B
G
D
A
I'm
saying
I
said,
like
the
I
think
for
the
conversion:
I
convinced
myself,
that
for
the
most
part,
the
difference
between
your
using
the
value
versus
your
contracting,
the
value
is
within
the
same
vicinity,
I.
Think
of
arithmetic.
It's
not
kind
of
like
that,
cuz
that,
with
the
way
you
write
normal
code
as
you
do
arithmetic
you
get
values
out,
they
may
be
invalid,
but
then
you
do
your
checks
right
and
then
you
call
them
nothing.
That's
right
see,
but
generally
intermingling
them
as
part
of
the
athletic
operation.
H
So
I've
written
on
the
board,
since
we
were
talking
about
the
example
of
splitting
less
than
comma
first
name
so
right
now,
if
you
call
them
index,
if
you
turn
on
index
up
searching
for
calling
you're
going
to
get
back
in
and
32
as
a
friend
as
a
return
value,
do
we
see
any
api's?
It
might
return
index
as
a
return
value,
as
opposed
to
simply
hit
ball
sense
like
do
we
only
see
index
is
something
that's
going
to
be
passed
in,
to
be
honest
rather
than
from.
H
Because
if
if
I
was
going
to
argue
that,
if
we
saw
an
API
isn't
returned
in
index
at
that
point,
it
definitely
makes
sense
to
add
operators,
because
now
you're
going
to
have
local
variables
of
type
index
that
you're
going
to
need
to
advance
on
or
reverse
on.
But
if
we
don't
anticipate
people
having
locals
of
type
index,
the
operators
are
a
lot
less
used.
Oh.
B
B
H
The
message
forever
and
we
expect
people
to
immediately
call
the
get
any
actual
offset
from
the
underlying
content.
Then
you
only
have
them
for
exchange
purposes
and
everything
falls
down
to
in
32
other,
which
means
they're
not
really
sticking
around
as
locals.
Right
here,
yeah
you
take
it
as
parameters
and
then
we're
all
okay.
M
A
Should
definitely
have
equals
equals
because
they
are
well
I,
mean
I,
think
there
already
exist
and
structurally
flawed
right,
you
have
to
write
them.
I
think
there
was
the
conclusion.
Yes
them
and
the
family
of
limitation
is
not
as
efficient,
as
is
what
I
always
thought
that
when
you
do
equals
instruct
without
defining
yourself,
it's
probably
performance
will
appear
like
this
long.
Okay,
it's
effectively
a
mem
comb.
A
K
D
A
B
H
M
F
B
M
A
G
I
G
B
G
O
G
Gonna
obviously
appear
inside
parentheses
inside
some
other
junk,
and
those
constructors
are
gonna
just
result
in
a
lot
of
syntheses
and
a
lot
of
fantastic,
apparent
nesting.
Visual
next
look
well,
I!
Guess
we
both
have
as
money
for
the
suit
so
see.
You
cancel
that
argument,
but
I
still
like
the
factory
methods.
The
factory
method
specifically
named
for
men,
yeah.
K
N
B
F
G
C
A
Can
you
call
the
rice
it
please
I,
don't
know
why
it
doesn't
color
wise
I
think
there
is
a
I'm,
just
I
think
I
have
a
bug
in
the
regex
I
think
if
I
remove
the
semicolon,
there
I
think
it
would
work.
Did
you
use
most
of
line
using
sublime
there
I
think
this
school
is
a
bit
more
forgiving
I
think
this
works
the
thing
yeah
we.
N
F
B
Me
the
offset
for
a
collection
of
length
for
the
current
value.
Yeah,
that's
where
length
is
a
little
length,
is
a
little
confusing
you
like
that.
If
it
was
collection
length
or
something
like
that,
then
it
will
be
more
self-explanatory.
I
walk
up
to
my
specific
index
and
I
get
its
offset
in
this
collection
yeah,
but
it's
also
right.
B
D
F
N
N
F
L
B
C
A
Yeah
anything
that
is
indexable
heather
has
a
according
to
interfaces,
has
account,
and
if
you
could
go
back
in
time,
I
would
not
make
a
race
link.
Yes,
that's
it
so
I
think
if
you
use
the
term
collection
I
think
we
want
to
use
today
income,
because
that
only
is
any
collection
that
doesn't
have
comments.
B
F
D
F
N
A
L
P
C
A
P
G
D
G
G
N
G
F
A
P
N
Instruction,
probably
more
efficient,
so
just
not
to
take
a
look
and
gift
horse
in
the
mouth,
but
with
the
implicit
conversion.
The
people
who
were
strongest
against
it
aren't
here
are
we
gonna
be
revisiting
this
again
when
they
read
the
note,
we.
A
Well,
I
think
yesterday,
even
yesterday,
I
think
we
reached
the
conclusion
that
it
doesn't
really
matter
whether
the
belief
do
my
thing
or
not,
because
it
has
to
happen
at
some
point.
Okay,
that's
right!
I
just
want
I,
just
didn't
want
to
say
it's
just
a
question
of
whether
Emily
raised
the
chords
like
yeah.
Is
it
in
the
framework
like
it?
Also,
it
doesn't
even
change
where
the
exception
occurs,
but
it's
doing
the
same
spot
so
in
practice,
I,
don't
think
it
matters
sounds
good.
You
want
to
make
sure
that
we.
A
A
B
F
F
D
N
N
K
F
N
D
N
That
what
Deacon
started
the
race
well,
there's
two
things
interesting
with
range:
one
is
potentially
deconstructive.
If
anything,
it's
a
logical
to
fold,
but
the
other
one
think
the
interesting
that's
not
up
there
is
we're
saying
that
we're
buying
essentially
range
is
an
abstract
range.
It
has
no
concreteness.
D
N
D
D
A
N
L
N
N
The
difference
between
a
three-word
passing,
something
which
is
three
words
in
two
words,
can
be
significant.
Oh
it's
gonna,
say
and
so
I
know
parameter
passing
two
and
three
words
can
do
big
difference
in
performance.
I
have
the
mini
returns
are
similar,
but
we
should
ask
someone.
The
terms
are
effectively
equivalent.
K
B
K
K
C
F
F
But
I
was
saying:
I
was
saying
that
a
range
could
be
considered
closed
as
long
as
neither
start
nor
and
it's
from
n,
because
then
you
can
statically
determine
that
there
ever
a
quick
relevant
to
each
other
etc.
So
it
would
still
be
valid
to
return
range.
As
long
as
we
say
night,
the
range
return
here
will
have
yes.
A
F
N
Then
that
just
means
you're
adding
more
dynamic
checking,
because
you
have,
because
you
end
up
having
essentially
like
a
method
which
expects
a
close
range
folks
says:
if
not
is
close,
throw
argument
of
range
exception,
then
close
and
cool
and
then
get
in
and
get
link,
which
are
also
going
to
check
once
again
is
a
closed.
Is
it
close
like
it's
it's
how
much
dynamic
taking
you
it.
B
P
P
B
B
B
F
B
A
P
B
Saying
that
that's
a
innit
in
a
sense,
that's
a
decision
that
that
the
doctor
in
work
made
long
ago,
like
back
in
version,
1
or
whatever,
that
right
they
we
don't
have
overloads
for
start
coming
length
and
start
command
and
and
all
that
we
just
have
start
in
length
and
that's
how
you
do
this
Vince.
That's
how
you
express
these
ranges
with
Ames
and
we've
been
very
consistent
throughout
the
framework
about
that.
So
we
shouldn't
have
overloads
either.
Here
is
my
argument.
We
should
just
have
the
one
that
corresponds
to
what
we've
always
done.
F
No,
it's
all
I
was
saying
you
could
have
the
second
one
that
doesn't
return
there
to
boil,
but
it
returns
int.
It
only
has
out
by
their
legs,
so
it
returns
start
and
then
has
length
returned
as
ya
plan,
which
I
think
is
more
common
for.
When
you
return
to
values,
we
return
one
directly
and
then
have
the
other
video,
but.
D
F
G
Just
wondering
the
code
in
which
it's
a
preferable
way
to
do
it
because
it's
the
chip,
oh,
you
know
we
always
have
tickles
available
when
we
have
this
feature.
So
I
did
like
the
named
range
length
I'm
just
saying
you
just
change
that
name.
I
thought
it
was
a
little
bit
helpful
to
have
them
have
different
names.
I'm.
A
G
G
B
F
G
F
A
L
K
B
D
A
D
Really
then
we
might
as
well
just
say,
Value
table
yes,
but
cept.
It
doesn't
matter.
There's
gonna
meet
debate
matter.
What
we
went
through
this
before
it
doesn't
matter
what
type
you
return
there
will
be
a
bit
well
if
we
make
a
destructor
to
certain
public.
You
know
there
is
debate
about
that
too,
but
we'll
part
about.
If
you
make
your
own
struct
with
the
constructors,
there
will
be
than
me
about
whether
or
not
it
should
have
accessors
for
the
individual
elements
and
then
those
accessors.
It
will
be
debate
on
the
names.
D
F
A
M
B
D
A
I
would
say,
like
I
would
prefer
this
one
over
at
this
one
for
sure,
hey
so
I
would
say
like
let's
delete
this
one.
Is
it
like
jelly
everything
and
then
I
think
it
really
boils
down
to
these
two
and
what
I
don't
like
about
the
second
one
is
the
fact
that
now
this
is
really
confusing
right
get
links,
and
then
you
ask
you
possibly
in
the
length
is
that
whoa?
What's
wrong
with
you
like
I,
don't
know.
N
N
N
O
N
F
O
A
P
A
A
Concise,
so
the
consistency
I
think
the
turn
off.
This
thing
happen
like
I,
think
originally
we
had
like
clothes
or
something
like
it
doesn't,
including
the
VCR
clothes
means
something
very
different.
It
seems
like
just
odd.
Like
I
mean
it
makes
anything,
but
it
is
an
open
interval
or
something,
but
it
doesn't
really
make
sense
for
like
the
thing
you
want
to
get
out
is
the
offset
in
the
length
right
so
generally
like
calling
the
neck
that
what
it
does
made
much
more
sense
than
trying
to
introduce
a
term
that
will
not
be
used.
B
A
D
A
B
I'm
more
concerned
about
length
yeah
both
an
input
and
an
output.
Yes,
this
is
so
we
kind
of
avoided
having
a
better
longer
more
descriptive
name
when
we
talked
about
indexed
of
get
offset,
but
now
we
have
the
same
parameter
again
in
the
context
where
we
also
want
to
return
the
length.
Yes,
what
we
can
call
it
count
the
ones
count
one
length
and
yeah
totally
clear,
which.
D
A
We
Emily
know
the
truth
of
this.
We're
different,
meaning,
I
think
there,
because
there
are
the
people
that
offended.
We
were
offended,
but
some
others
are
not
here
either.
I
would
rather
say,
like
we
can't
send
on
what
this
thing
returns
differently
like
for
us
agree
on
the
name
and
like
what
the
shape
is
right.
I
think
that
seems
more
like
is
anything
else,
but
this
method
now
on
you
know,
image
images
need
to
discuss
yeah.
D
D
A
D
No,
it
creates
it
allocates
a
new
array
and
company
and
Commons,
which
is
the
decision
that
was
made
wait.
Do
we
need
one
for
string
two
or
are
we
chose
that
should
be
added
directly
on
the
string?
They
implement
eight,
like
everything
there
is
just
the
string
type,
and
so
they
should
handle
that.
But
all
this
is
compiler
one.
That
sounds.
F
A
D
B
N
B
G
G
A
G
G
A
G
G
N
G
C
A
G
C
G
A
Yeah
I
think
there
was
still
some
concerns
like
Stephen
brought
this
up
a
few
times,
I
think
on
the
on
the
PR,
for
this
thing
that
what
we
said
in
the
ldm
already
right,
that
you
know
there's
this
concern
that
we
may
make
it
easy
to
use
this
fan
base.
The
API
is
now
located
sorry
this
and
that
we
make
it
easier
to
allocate
by
accident
knowing
that
okay,
this
is
the
what
that
I
think.
N
A
A
I
think
the
challenge
today
is
that
I
think
you
know
part
of
my
team
was
involved
with
FX
cop
and
they
have
wrote
the
line.
We
can
fix
it
in
FX
clock
too
many
lines
too
many
times
right
so
I
think
the
problem
is
we
don't
have
a
product
guys
and
let
us
set
for
core
FX.
So
everybody
believes
that
this
is
a
pie
in
the
sky
thing
where
other
than
reality
so
I
think
that's
where
all
these
things
are
not
necessarily
convincing.