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
