racket/typed-racket

case-lambda allows multiple cases with the same arity

Aberta

#517 aberto em 24 de mar. de 2017

 (5 comentários) (0 reação) (0 responsável)Racket (106 forks)github user discovery
arrowgood first issue

Métricas do repositório

Stars
 (576 estrelas)
Métricas de merge de PR
 (Mesclagem média 11d 14h) (1 fundiu PR em 30d)

Description

[I originally opened this as an issue for racket, but it more clearly violates the docs for typed/racket.]

Although for racket it doesn't seem explicitly forbidden, the typed/racket docs say:

Note that each formals must have a different arity.

Should this perhaps be an expansion-time error:

> (case-lambda [([z : Zero]) z]
               [([o : One]) o])
- : (-> Zero Zero)

This came up because a student encountering the case-> type constructor wondered whether case-lambda would provide overloading by type.

Guia do colaborador