Tobias Nipkow and Simon Finn were both kind enough to point out that my Trie example was wrong, in that it is perfectly typeable in ML (or Haskell). Tries are like Mark's datatype X. The untypeable version is like Mark's datatype Y. data Try a = Atom a | List (Try [a]) maptry :: (a -> b) -> Try a -> Try b maptry f (Atom a) = Atom (f a) maptry f (List ast) = List (maptry (map f) ast) I hope I got that right this time. Thanks, guys! -- P
- Polymorphic recursive calls possible via type classes Konstantin Laufer
- Re: Polymorphic recursive calls possible via type c... jones-mark
- Re: Polymorphic recursive calls possible via type c... wadler
- Polymorphic recursive calls possible via type class... smk
- Re: Polymorphic recursive calls possible via type c... Joe Fasel
- Re: Polymorphic recursive calls possible via type c... wadler
- Re: Polymorphic recursive calls possible via type c... wadler
- Re: Polymorphic recursive calls possible via type c... Joe Fasel
- Re: Polymorphic recursive calls possible via type c... hudak-paul
- Re: Polymorphic recursive calls possible via type c... wadler
- Re: Polymorphic recursive calls possible via type c... kh