
14 Apr
2010
14 Apr
'10
3:29 a.m.
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