User loginNavigation |
Type classes and type generator restrictionsHello LtU. I've been lurking for a while, but this is my first post. I'm not really sure where it ranks on the scale from "how did you get through undergrad without reading X" to "do your own research, dude". I've tried googling everything I can think of, and reading breadth first from Glynn, Stuckey, and Sulzmann's paper "Type classes and constraint In a Haskell-esque language with Haskell type classes, imagine a type generator, Set. This type generator requires that its argument be an instance of the Equality type class (because otherwise, how could it ensure that its elements are distinct). Set is also an instance of the Haskell Functor type class, because we can map over sets. With theSet having type Set integer, and a map function with the usual type (namely, (Functor f) => (a -> b) -> F a -> F b), everything seems good. But here's my problem: map (+) theSet appears to have the type Set (integer -> integer). KA-BOOM! Functions aren't in the Equality type class, and so we can't specialize Set at integer -> integer. Does anyone know how to build a type inference / type checking algorithm that reports this error (statically)? If so, could you point me in the right direction? By Douglas McClean at 2008-07-23 23:44 | LtU Forum | previous forum topic | next forum topic | other blogs | 6938 reads
|
Browse archives
Active forum topics |
Recent comments
22 weeks 6 days ago
22 weeks 6 days ago
22 weeks 6 days ago
45 weeks 19 hours ago
49 weeks 2 days ago
50 weeks 6 days ago
50 weeks 6 days ago
1 year 1 week ago
1 year 6 weeks ago
1 year 6 weeks ago