One other suggestion: you can use `define-predicate` in a Typed Racket
module to create a predicate for any type that can be checked
immediately. So

```
(define-predicate dist? (Discrete-Dist Your-Type-Here))
```

should define the predicate you want.

Sam

On Fri, Jul 28, 2017 at 10:23 AM, James Geddes <jged...@turing.ac.uk> wrote:
> This is likely a typed-untyped interface newbie question.
>
> Briefly, how can I write a contract that asserts that some value has a type 
> that is defined in an imported typed/racket library?
>
> In more detail, I am using the math/distributions library, which is written 
> in typed/racket. My module is written in untyped Racket, and I'm figuring out 
> how to use contacts:
>
> #lang racket
> (require math/distributions) ;; this is a typed/racket library
>
> (define my-dist (discrete-dist '(thing-one thing-two)))
>
> (provide (contract-out [my-dist ???]))
>
>
> The question is: what should ??? be?. There is a distribution? predicate but 
> I'd quite like to be more specific: namely, that my-dist is a discrete 
> distribution. In the source of math/distributions, the following type is 
> defined:
>
>         (define-type (Discrete-Dist A) (discrete-dist-struct A A))
>
> but I don't know how this might translate into my untyped module.
>
>
> Any help much appreciated!
>
> James
>
>
>
>
> -------------------------------
> James Geddes
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to racket-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to