On Mon, Jun 16, 2014 at 3:06 PM, Alexander D. Knauth
<alexan...@knauth.org> wrote:
>
>> Typed Racket functions are
>> just plain Racket functions. We could add some extra metadata to every
>> value that held its type,
>
> It wouldn’t have to be every value, it could just put that information in for 
> :has-type expressions, right?
> Would that still require fundamental changes to Racket?

The problem is that the information needs to get attached to the value
where the value is created, not where you use `:has-type?`.  The
`:has-type?` could even be in some other module, so you'd have to add
this information to every value, everywhere.  That's why it would need
to be part of the runtime.

>> and then implement this operation, but that
>> would require fundamental changes to Racket.
>>
>> Even if we wanted to do that, what if `f` came in from untyped Racket?
>
> If f comes from untyped Racket, then the type checker says to use 
> require/typed to import it.

But what if it was imported with `require/typed` -- the value wouldn't
have the necessary runtime tags for determining if it has a particular
type.

Sam

____________________
  Racket Users list:
  http://lists.racket-lang.org/users

Reply via email to