I'm saying that people can make mistakes in Racket currently that
undermine the guarantees of the type system. But lets continue the
other line first.

On Tue, Jun 26, 2012 at 8:28 PM, Matthias Felleisen
<matth...@ccs.neu.edu> wrote:
>
> Huh?
>
> On Jun 26, 2012, at 9:27 PM, Robby Findler wrote:
>
>> Well, you wouldn't. Are the implementations of the contracts proven to
>> be equivalent currently? Or do you just have a theorem that matches up
>> the ones in some model somewhere?
>>
>> Robby
>>
>> On Tue, Jun 26, 2012 at 8:05 PM, Matthias Felleisen
>> <matth...@ccs.neu.edu> wrote:
>>>
>>> How would you check soundness between a type and its contract?
>>>
>>> Types, like theorem provers, are addictive. The more expressivity
>>> they provide, the more programmers want to play with them.
>>>
>>> Use Real -> Real and you'll be fine. -- Matthias
>>>
>>>
>>>
>>> On Jun 26, 2012, at 8:37 PM, Robby Findler wrote:
>>>
>>>> In this case, the contract could turn into a dependent one with the
>>>> same semantics. Does it make sense for TR to allow a user to declare
>>>> the equivalent contract?
>>>>
>>>> Robby
>>>>
>>>> On Tue, Jun 26, 2012 at 7:17 PM, Neil Toronto <neil.toro...@gmail.com> 
>>>> wrote:
>>>>> Ten minutes in, I've hit a snag. I'd like the stuff in math/functions to
>>>>> have precise types. For example, log1p could have the type
>>>>>
>>>>>  (case-> (Zero -> Zero)
>>>>>          (Float -> Float)
>>>>>          (Real -> Real))
>>>>>
>>>>> It was easy to get the implementation to typecheck, but when I tried to 
>>>>> plot
>>>>> it in untyped Racket, I got this:
>>>>>
>>>>>  Type Checker: The type of log1p cannot be converted to a contract in: 
>>>>> log1p
>>>>>
>>>>> I really don't want to have two versions of the library. Could TR use the
>>>>> most general type (Real -> Real) as the contract? Or would that be 
>>>>> unsound?
>>>>>
>>>>> Neil ⊥
>>>>> _________________________
>>>>>  Racket Developers list:
>>>>>  http://lists.racket-lang.org/dev
>>>>
>>>> _________________________
>>>>  Racket Developers list:
>>>>  http://lists.racket-lang.org/dev
>>>
>

_________________________
  Racket Developers list:
  http://lists.racket-lang.org/dev

Reply via email to