The instantiation of (inst compose Nothing Any Any) gives (-> Nothing Any). If you give Nothing Nothing Any, then the type error refers to some gensym, heh. -Ian
On Tue, Sep 29, 2015 at 3:39 PM, Sam Tobin-Hochstadt <[email protected]> wrote: > Your original program does not use `inst`, so I'm not sure what you're > referring to. > > The expression is certainly typable -- the second program I gave > typechecks at `(-> Any Any)`. > > Sam > > On Tue, Sep 29, 2015 at 4:32 PM, Matthias Felleisen > <[email protected]> wrote: > > > > The inst inside the expression. > > > > Is this expression typable at the moment? > > > > > > > > On Sep 29, 2015, at 4:14 PM, Sam Tobin-Hochstadt <[email protected]> > wrote: > > > >> What use of `inst` produced `Nothing`? > >> > >> Sam > >> > >> On Tue, Sep 29, 2015 at 3:46 PM, Matthias Felleisen > >> <[email protected]> wrote: > >>> > >>> On Sep 29, 2015, at 3:25 PM, Sam Tobin-Hochstadt <[email protected]> > wrote: > >>> > >>>> I think something problematic is happening with type inference here, > >>>> and better types could be picked. Right now, Typed Racket is doing > >>>> this: > >>>> > >>>> (compose (λ (x) x) (inst (λ #:forall (a) ({x : a}) x) Nothing)) > >>>> > >>>> when it should probably do > >>>> > >>>> (compose (λ (x) x) (inst (λ #:forall (a) ({x : a}) x) Any)) > >>>> > >>>> However, using polymorphic arguments (such as your second function) > >>>> to polymorphic functions (such as `compose`) in general won't produce > >>>> the results you want, and I recommend writing the instantiation you > >>>> want explicitly. > >>> > >>> > >>> > >>> Well yes, that's where I started with inst. The Nothing told me I was > on the wrong track with inst. > >>> > >>> What you might be saying is 'use inst for compose'. > >>> > >>> -- Matthias > >>> > >>> > >>> > >>> > >>> > >>>> > >>>> Sam > >>>> > >>>> On Tue, Sep 29, 2015 at 2:33 PM, Matthias Felleisen > >>>> <[email protected]> wrote: > >>>>> > >>>>> Why does this > >>>>> > >>>>>> (compose (λ (x) x) (λ #:forall (a) ({x : a}) x)) > >>>>> > >>>>> have this type: > >>>>> > >>>>>> - : (-> Nothing Any) > >>>>> > >>>>> Thanks -- Matthias > >>>>> > >>>>> > >>>>> > >>>>> -- > >>>>> You received this message because you are subscribed to the Google > Groups "Racket Developers" group. > >>>>> To unsubscribe from this group and stop receiving emails from it, > send an email to [email protected]. > >>>>> To post to this group, send email to [email protected]. > >>>>> To view this discussion on the web visit > https://groups.google.com/d/msgid/racket-dev/7E7C582D-7066-4073-AAFD-9B6CA99F1F1E%40ccs.neu.edu > . > >>>>> For more options, visit https://groups.google.com/d/optout. > >>> > > > > -- > You received this message because you are subscribed to the Google Groups > "Racket Developers" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/racket-dev/CAK%3DHD%2BY9VNCsvx81nHpXcevEW0PmMHD%3DcZxdbFBsmrSEiCiZ2g%40mail.gmail.com > . > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Racket Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/racket-dev/CANuvrwDWYkfhW%2BconAv71R0B%2Bh9B9NZr2Oxxgd7PR0uwKogk%3Dg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
