OK, Matt,

I'm just not following what you say.
So you're gonna have to talk to somebody else about it, or figure out
a way of presenting your objection/problem that I can understand.

On Tue, Jun 16, 2015 at 9:22 PM, Matt Rice <ratm...@gmail.com> wrote:
> On Tue, Jun 16, 2015 at 4:10 PM, Matt Oliveri <atma...@gmail.com> wrote:
>> On Tue, Jun 16, 2015 at 5:43 PM, Matt Rice <ratm...@gmail.com> wrote:
>>> On Tue, Jun 16, 2015 at 1:06 PM, Matt Oliveri <atma...@gmail.com> wrote:
>>>> On Tue, Jun 16, 2015 at 7:05 AM, Matt Rice <ratm...@gmail.com> wrote:
>>>
>>> (reordering a bit to reply to both these things below)
>>>
>>>>> and frustratingly set
>>>>> up so that you cannot speak about type's return value, or specify some
>>>>> return values future type existentially,
>>>>
>>>> I don't understand. A type doesn't have a return value. And what is a
>>>> "future type"? You're not talking about futures, are you?
>>>
>>> In a sense yes, parsers and languages are *full* of stuff which will
>>> only be representable in the future.
>>
>> I mean this "futures":
>> http://en.wikipedia.org/wiki/Futures_and_promises
>
> I mean pretty much existential type, except that it's equivalent to a value.
>
>>> value:type is one of these things,
>>
>> I think you're being _too_ creative here. The typing judgement is just
>> some metalanguage syntax. I don't see how it could be something whose
>> execution involve futures, or any side effects. It's unconventional to
>> even think of it as being executable.
>
> In general it is the metalanguage that I have a problem with, its goal is
> to confine types and their values to the meta language in which they
> will used equivalently across the entire program.  let me restate
> that, I have a problem when the meta language results in the loss of
> the type as it would be represented by a value...
>
> This is what I meant when I was trying to say you lose the paradigm by
> 'going down an order', unless that meta-language is pure and evaluates
> to another language which retains types as values, you can not get the
> values back out of the meta-language, my argument is that there are
> better ways to do confinement, and by its nature it leads to a more
> expressive system that can be as unexpressive as you desire...
>
> being able to do futures and stuff is just a biproduct of working with
> values (functions that accept types as parameter, and return types as
> return values).  Which implies that the phase distinction is
> muddied...
>
> I just don't see the point of adding on meta-languages *if* we can
> express them in a unified core language.
>
>>> so we collect all the arguments *before* we can solve whatever
>>> it is we are trying prove, it is useful if everything is consistent
>>> across phases.
>>
>> A thing to prove is a statement. It's syntax. You don't need to
>> evaluate anything. So I don't see how we'd be waiting on futures in
>> "value:type".
>
> The types are *input* to the compiler, the resulting AST type is
> generally input to the parser...
>
>>>>> its easy to fall under the spell of omniscient type values, rather
>>>>> than isolating phases from one another, and reusing the language.
>>>>
>>>> I don't know what you mean by "omniscient". But it kind of sounds like
>>>> you're against having code be reusable across phases.
>>>
>>> That is my main problem with type, is exactly that it doesn't have a
>>> return value,
>>
>> If by return value, you mean the result of evaluating an expression,
>> then type expressions _can_ have a return value: a type
>> representation. But most dependent type systems don't allow you to
>> inspect a type representation (e.g. with a type case), so they might
>> get optimized out before runtime. Or they might be used internally to
>> implement polymorphism.
>>
>>> the low-level sequence is value:type = sequence_of_one_or_more_things,
>>> so there is a 1 < - n, (one type for every typed sequence),
>>> further there is a 1 -> n fields to a type (or we can go from 1 type,
>>> to n typed values),
>>
>> I'm not sure, are you talking about reduction sequences, from
>> operational semantics? Otherwise I have no idea.
>>
>>> this expansion and contraction, is rather fundamental, and so saying
>>> that type doesn't have a return value is implying type is global and
>>> ambient, because it needs to be globally consistent, I believe there
>>> are other ways of proving global consistentcy, through isolation and
>>> the interpretation of the types value...
>>
>> I don't know what you mean by global consistency. And I'm still not
>> sure I know what you mean about whether a type has a return value.
>>
>>> this *allows* types to be
>>> reusable across phases,
>>
>> Types are already reusable across phases. In a dependent type system,
>> all computations are constrained by the same type system, whether they
>> take place at compile time or runtime.
>>
>>> if we take away the "return value" of 'type',
>>> when we absolutely *remove* the ability to pass them as arguments and
>>> use parameter passing as a mechanism for giving or denying authority
>>> to types, so the easiest analogy I can come up with is that an
>>> ambient/global idea of type, essentially builds a fence, where it
>>> seems reasonable that a wall would suffice,
>>
>> I don't see why you're talking about authority, since type expressions
>> need to be pure computations.
>>
>>> you'll most certainly have to drop subtyping though, or at move to its
>>> equivalent in the space where types are values...
>>
>> Subtyping still makes sense when types are passed around in the same
>> way as values.
_______________________________________________
bitc-dev mailing list
bitc-dev@coyotos.org
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to