<dubiousjim>
follow-up question: why does the `Integer[A]` constraint need to be qualified with `val`?
<dubiousjim>
if one omits that (or attaches it to `Unsigned` instead) the two lines marked "// here" in that playground example
<dubiousjim>
fail because the types of the literal numbers can't be inferred
<dubiousjim>
but why is attaching a `val` to `Integer[A]` what enables their types to be inferred?
<dubiousjim>
I have some rudimentary understanding of rcaps, but attaching one to a type constraint seems weird. It's aliases to values that rcaps are supposed to qualify...
user10032 has quit [Remote host closed the connection]
codec1 has joined #ponylang
khan has quit [Remote host closed the connection]
khan has joined #ponylang
khan has quit [Read error: Connection reset by peer]
khan has joined #ponylang
khan has quit [Client Quit]
khan has joined #ponylang
mahmudov has joined #ponylang
<krig>
dubiousjim: I'm also just learning, but I think it's because numbers are always val - and unless there's a constraint, the code has to be able to compile for all caps
<krig>
dubiousjim: so with the literal assignment "= 0" the target of that has to be a val
<krig>
i guess box or tag would also work..
khan has quit [Quit: khan]
mahmudov has quit [Remote host closed the connection]
codec2 has quit [Read error: Connection reset by peer]
aturley has quit [Quit: aturley]
inoas has joined #ponylang
inoas has quit [Quit: inoas]
inoas has joined #ponylang
inoas has quit [Client Quit]
khan has joined #ponylang
alxs has joined #ponylang
alxs has quit [Quit: Computer's gone to sleep. ZZZzzz…]
alxs has joined #ponylang
Pyrrh has quit [Read error: Connection reset by peer]
Pyrrh has joined #ponylang
alxs has quit [Quit: Computer's gone to sleep. ZZZzzz…]
alxs has joined #ponylang
alxs has quit [Quit: Computer's gone to sleep. ZZZzzz…]
inoas has joined #ponylang
alxs has joined #ponylang
alxs has quit [Client Quit]
alxs has joined #ponylang
aturley has joined #ponylang
alxs has quit [Quit: Computer's gone to sleep. ZZZzzz…]
alxs has joined #ponylang
aturley has quit [Quit: aturley]
jemc has joined #ponylang
endformationage has joined #ponylang
alxs has quit [Quit: Computer's gone to sleep. ZZZzzz…]
dubiousjim has joined #ponylang
alxs has joined #ponylang
gokr has quit [Ping timeout: 256 seconds]
khan has quit [Quit: khan]
khan has joined #ponylang
khan has quit [Client Quit]
khan has joined #ponylang
winksaville has joined #ponylang
winksaville has quit [Client Quit]
gokr has joined #ponylang
dave24 has quit [Quit: rirc v0.1]
dave24 has joined #ponylang
mson has joined #ponylang
inoas has quit [Quit: inoas]
inoas has joined #ponylang
aturley has joined #ponylang
gokr has quit [Ping timeout: 240 seconds]
inoas has quit [Quit: inoas]
mahmudov has quit [Remote host closed the connection]
aturley has quit [Quit: aturley]
alxs has quit [Quit: Computer's gone to sleep. ZZZzzz…]
user10032 has joined #ponylang
codec1 has quit [Read error: Connection reset by peer]
alxs has joined #ponylang
mahsav has quit [Ping timeout: 276 seconds]
codec1 has joined #ponylang
gokr has joined #ponylang
alxs has quit [Quit: Computer's gone to sleep. ZZZzzz…]
alxs has joined #ponylang
milisarge has joined #ponylang
alxs has quit [Quit: Computer's gone to sleep. ZZZzzz…]
alxs has joined #ponylang
aturley has joined #ponylang
aturley has quit [Quit: aturley]
nisanharamati has joined #ponylang
_andre has quit [Quit: leaving]
dubiousjim has quit [Ping timeout: 264 seconds]
inoas has joined #ponylang
khan has quit [Quit: khan]
Pyrrh has quit [Read error: Connection reset by peer]
alxs has quit [Quit: Bye y'all!]
alxs has joined #ponylang
inoas has quit [Quit: inoas]
codec1 has quit [Read error: Connection reset by peer]
alxs has quit [Quit: Computer's gone to sleep. ZZZzzz…]
alxs has joined #ponylang
dipin has joined #ponylang
alxs has quit [Quit: Computer's gone to sleep. ZZZzzz…]
aturley has joined #ponylang
Jwashton has joined #ponylang
inoas has joined #ponylang
user10032 has quit [Quit: Leaving]
dipin has quit [Quit: dipin]
dipin has joined #ponylang
dipin has quit [Client Quit]
Jwashton has quit [Remote host closed the connection]
Jwashton has joined #ponylang
Jwashton has quit [Remote host closed the connection]
Jwashton has joined #ponylang
<Jwashton>
Is there someplace I can read more about AmbientAuth? The tutorial introduced it conceptually, the docs have a brief blurb, there's a few useful examples in the examples directory, and it's mentioned in the Supply Chain pattern page as a thing that might fail.
<Jwashton>
But I feel like there's more to learn. Are there other "Object Capabilities" in the language? If so, do you also request them with the `as` keyword? Why my requesting AmbientAuth fail? Is it a thing that's only granted to one actor at a time?
<Jwashton>
why might*
<Jwashton>
Looking at the source, all I'm seeing is that it's a primitive with a constructor that returns None. Does that mean the compiler just knows that this primitive needs a spoonful of magic whenever it shows up?
<SeanTAllen>
There's no magic in the compiler for AmbientAuth jwashton
<SeanTAllen>
Did you read the comment on AmbientAuth primitive?
<Jwashton>
Ah, looking at the source for Env helps a little bit.
<SeanTAllen>
so _create on AmbientAuth is private that means only things in the same package can create it.
<SeanTAllen>
Which only happens in Env.
<Jwashton>
Yeah, the AmbientAuth comment looks like the same from the docs (which makes sense for auto-generate docs.).
<Jwashton>
So, the typespec on the root attribute of Env is the bit that's helping I think. root is (AmbientAuth | None), which means that at some point something could cause root = None. root as AmbientAuth isn't different than any other use of the keyword.
<Jwashton>
So I guess the remaining question is when might env.root actually be None? Is that a theoretical thing that's useful to ponder, but in practice something that never happens?
<Jwashton>
Huh, that's interesting. The docs for AmbientAuth list two public functions (eq and ne) that don't show up in the source.
<SeanTAllen>
the docs are generated from the final compiler processed sutff
<SeanTAllen>
every primitive has an eq and ne function
<SeanTAllen>
that's based on identity
inoas has quit [Quit: inoas]
<Jwashton>
SeanTAllen Ah that makes sense.
Jwashton has quit [Remote host closed the connection]
Jwashton has joined #ponylang
Jwashton has quit [Remote host closed the connection]
Jwashton has joined #ponylang
mson has quit [Quit: Connection closed for inactivity]
Jwashton has quit [Remote host closed the connection]