Guess I was just wondering what deep lore was behind choosing Word8 for the whole number instead of an Integer. Right, Fraction 5 1 2, but what's up with "mixedBit" and Word8? BTW, how might that constraint numerator < denominator be handled if setting up MIxedFraction for real use?On Tue, Sep 14, 2021 at 11:13 PM Bob Ippolito <bob@redivi.com> wrote:From context it's only used as a more concrete example of a product type to show how cardinality analysis works. I would infer that the idea is that this type would use mixedBit for the whole number and there would be a constraint that numerator < denominator. Fraction 5 1 2 would be the canonical way to represent 5 1/2 in that scheme. Practically speaking there's no reason to have the mixedBit field because a pair is enough to represent any fraction, but if it was simplified this way then the example would be redundant since there's already an example of a pair type on the same page.On Tue, Sep 14, 2021 at 8:51 PM Galaxy Being <borgauf@gmail.com> wrote:I'm looking at Sandy Maguire's _Thinking With Types_ and he's talking about the cardinality of types. He introduces the product type_______________________________________________data MixedFraction a = Fraction
{ mixedBit :: Word8
, numerator :: a
, denominator :: a
}How is this a type for holding mixed fractions such as 5-1/2?
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.--