Send Beginners mailing list submissions to beginners@haskell.org To subscribe or unsubscribe via the World Wide Web, visit http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners or, via email, send a message with subject or body 'help' to beginners-requ...@haskell.org
You can reach the person managing the list at beginners-ow...@haskell.org When replying, please edit your Subject line so it is more specific than "Re: Contents of Beginners digest..." Today's Topics: 1. weird constraint (Dimitri DeFigueiredo) 2. Re: weird constraint (Sylvain Henry) 3. FFI for PBC - Windows and Nixes (Sumit Raja) ---------------------------------------------------------------------- Message: 1 Date: Wed, 16 Jan 2019 12:52:47 -0200 From: Dimitri DeFigueiredo <defigueir...@ucdavis.edu> To: The Haskell-Beginners Mailing List - Discussion of primarily beginner-level topics related to Haskell <beginners@haskell.org> Subject: [Haskell-beginners] weird constraint Message-ID: <190847a3-3cd6-8f19-38c7-adfaf13b7...@ucdavis.edu> Content-Type: text/plain; charset=utf-8 Could someone help me make sense of this Num constraint given by GHCi? I was expecting to get: inc . const :: Num a => a -> b -> a rather than: inc . const :: Num (b -> a) => a -> b -> a Here's the transcript: GHCi, version 8.6.3: http://www.haskell.org/ghc/ :? for help Prelude> inc x = x + 1 Prelude> :t inc inc :: Num a => a -> a Prelude> :t const const :: a -> b -> a Prelude> :t inc . const inc . const :: Num (b -> a) => a -> b -> a Prelude> Thanks, Dimitri -- 2E45 D376 A744 C671 5100 A261 210B 8461 0FB0 CA1F ------------------------------ Message: 2 Date: Wed, 16 Jan 2019 16:05:47 +0100 From: Sylvain Henry <sylv...@haskus.fr> To: beginners@haskell.org Subject: Re: [Haskell-beginners] weird constraint Message-ID: <647c6873-771c-4ef6-d6e8-28e11102d...@haskus.fr> Content-Type: text/plain; charset=utf-8; format=flowed Remember that a -> b -> a is equivalent to a -> (b -> a) So: (forall a. Num a => a -> a) . (a -> (b -> a)) Becomes: (Num (b -> a). (b -> a) -> (b -> a)) . (a -> (b -> a)) Then: Num (b -> a). a -> (b -> a) Finally: Num (b -> a). a -> b -> a On 16/01/2019 15:52, Dimitri DeFigueiredo wrote: > Could someone help me make sense of this Num constraint given by GHCi? > I was expecting to get: > > inc . const :: Num a => a -> b -> a > > rather than: > > inc . const :: Num (b -> a) => a -> b -> a > > Here's the transcript: > > > GHCi, version 8.6.3: http://www.haskell.org/ghc/ :? for help > Prelude> inc x = x + 1 > Prelude> :t inc > inc :: Num a => a -> a > Prelude> :t const > const :: a -> b -> a > Prelude> :t inc . const > inc . const :: Num (b -> a) => a -> b -> a > Prelude> > > > Thanks, > > Dimitri > ------------------------------ Message: 3 Date: Thu, 17 Jan 2019 20:45:01 +1100 From: Sumit Raja <sumitr...@gmail.com> To: beginners@haskell.org Subject: [Haskell-beginners] FFI for PBC - Windows and Nixes Message-ID: <CAD4nrSdTKs1gTjH5Ro+oVLP=7FPggAyTEw2=xtgdhjwv94y...@mail.gmail.com> Content-Type: text/plain; charset="UTF-8" Hi, I am stuck with an odd problem that I don't know how to begin to resolve. I have developed an FFI wrapper around the PBC library. I have a number of tests thatcheck simple operations and some of the more simple examples from the PBC C examples. On FreeBSD and Linux (Mint) all tests pass successfully but on Windows (mingw64) many fail with what look like data corruption errors. I suspect it is something to do with alignment or size calculations but I have no idea how to proceed. The hsc file is fairly standard: data PBCPairing = PBCPairing data PBCElement = PBCElement data PBCField = PBCField data PBCPreProcElement = PBCPreProcElement instance Storable PBCPairing where sizeOf _ = #{size struct pairing_s} alignment _ = #{alignment struct pairing_s} peek = notImplemented poke = notImplemented instance Storable PBCElement where sizeOf _ = #{size struct element_s} alignment _ = #{alignment struct element_s} peek = notImplemented poke = notImplemented instance Storable PBCPreProcElement where sizeOf _ = #{size struct element_pp_s} alignment _ = #{alignment struct element_pp_s} peek = notImplemented poke = notImplemented instance Storable PBCField where sizeOf _ = #{size struct field_s} alignment _ = #{alignment struct field_s} peek = notImplemented poke = notImplemented Generated sizeOf is the same and alignment is 8 across all OSes. I am using inline-c for the FFI. PBC was built using msys2's version of mingw64. All the C examples work correctly in the msys2 shell. Does any one have any ideas on how best to approach this issue? Thanks Sumit ------------------------------ Subject: Digest Footer _______________________________________________ Beginners mailing list Beginners@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners ------------------------------ End of Beginners Digest, Vol 127, Issue 4 *****************************************