On Wed, 2010-04-14 at 08:13 +0100, Thomas Davie wrote: > Your instances of Finite are not quite right: > > bottom :: a > bottom = doSomethingToLoopInfinitely. > > instance Finite () where > allValues = [(), bottom]
Bottom is not a value, it's failure to evaluate to a value. But if one did start considering bottom to be a value, one would have to distinguish different ones. For instance, (error "ABC") vs. (error "PQR"). Obviously this is not finite. -- Ashley Yakeley _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe