User loginNavigation |
archivesHow to type polymorphic variants with open generic functions?I'd like to implement a language with polymorphic variants, but instead of using pattern matching, I'd like to use Common Lisp-like generic functions that are defined with Where in pseudo-ML I'd say
let length list =
case list of
`Nil -> 0
| `Cons _ cdr -> 1 + length cdr
in my language I'd say (define-generic length) (define-method (length `Nil) 0) (define-method (length (`Cons _ cdr)) (+ 1 (length cdr))) I'd like to able to add methods in different compilation units, and only type-check generic functions at the end of compile-time, once all methods are known. Another possibility might be to defer type checking of generic functions to link time. Any ideas or pointers to things I should check out? I'm currently reading Simple Type Inference for Structural Polymorphism, and TAPL is lying on the coffee table. solution to the ever narrowing posts problem?are there any drupal hackers who could somehow fix the ever narrowing text problem? :-) |
Browse archivesActive forum topics |
Recent comments
1 hour 3 min ago
2 hours 47 min ago
16 hours 24 min ago
1 day 10 hours ago
1 day 12 hours ago
1 day 13 hours ago
1 day 15 hours ago
1 day 17 hours ago
1 day 18 hours ago
1 day 19 hours ago