ANNOUNCE: countable-0.1
Maciej Piechotka
uzytkownik2 at gmail.com
Mon Sep 6 12:04:46 EDT 2010
On Mon, 2010-09-06 at 03:54 -0700, Ashley Yakeley wrote:
> countable: Countable, Searchable, Finite, Empty classes.
>
> class Countable, for countable types
> class AtLeastOneCountable, for countable types that have at least one
> value
> class InfiniteCountable, for infinite countable types
> class Searchable, for types that can be searched over
> class Finite, for finite types
> class Empty, for empty types
> data Nothing, an empty type
>
> Also includes these orphan instances:
>
> instance (Searchable a,Eq b) => Eq (a -> b)
> instance (Finite a) => Foldable ((->) a)
> instance (Finite a) => Traversable ((->) a)
> instance (Show a,Finite a,Show b) => Show (a -> b)
>
> It turns out Searchable includes some infinite types. Specifically,
> countable implements this:
>
> instance (Countable c,Searchable s) => Searchable (c -> s)
>
> using the algorithm described here:
>
> http://math.andrej.com/2007/09/28/seemingly-impossible-functional-programs/
>
> I would welcome improvements.
>
> http://hackage.haskell.org/package/countable-0.1
> cabal install countable
> darcs get http://code.haskell.org/countable/
>
> See also this thread:
> http://thread.gmane.org/gmane.comp.lang.haskell.cafe/73275
>
Hmm.
1. Code formatting is very C#-like. At least for me it is hard to read
the code that way (it IS matter of preference however)
2. countMaybeNext seems to need documentation. If I understand it
correctly:
countMaybeNext Nothing = 'minimalValue'
countMaybeNext (Just x) = x + 1
Wouldn't be split it to:
countNext :: a -> Maybe a
initial :: Maybe a
3. Some methods need documentation. I don't know what recount actually
do.
Regards
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part
Url : http://www.haskell.org/pipermail/libraries/attachments/20100906/6756b783/attachment.bin
More information about the Libraries
mailing list