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. Providing Haskell Libraries wrapped for other Languages (Leonhard Applis) 2. Re: Providing Haskell Libraries wrapped for other Languages (Simon Jakobi) 3. strange error inside a case (PICCA Frederic-Emmanuel) 4. Re: strange error inside a case (Sylvain Henry) ---------------------------------------------------------------------- Message: 1 Date: Thu, 28 Nov 2019 14:15:27 +0000 From: Leonhard Applis <leonhard.app...@protonmail.com> To: "beginners@haskell.org" <beginners@haskell.org> Subject: [Haskell-beginners] Providing Haskell Libraries wrapped for other Languages Message-ID: <GWMEmGPietL5BGMOXNm_vOI1zYWXem1x6GOctodu3ftdJVurBPz36E5Jjq_lzGz7XC4t1CNeY-XajQCrh0j4NKVFXBTTGG4pBmJL6bh4U4s=@protonmail.com> Content-Type: text/plain; charset="utf-8" Hi, I am currently writing a small library. I will provide a small web-api for it, however I have some colleagues who neither have experience in haskell, nor in web-dev. Also they maybe want to produce programs using my library without internet / docker / etc. So in addition I'd like to provide the library "wrapped" for other languages, especially python, but maybe java as well. These wrappers should do nothing except invoking their pardons on the library, and should somewhat contain the library. What is the common way to do this? I've seen "hyphen" as a super heavyweight solution, and I've seen people starting the haskell library listening on system-pipes. I don't feel that these are the "best" solutions, atleast for my intention. best regards Leonhard -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.haskell.org/pipermail/beginners/attachments/20191128/38f52f24/attachment-0001.html> -------------- next part -------------- A non-text attachment was scrubbed... Name: publickey - leonhard.app...@protonmail.com - 0x807FDDF3.asc Type: application/pgp-keys Size: 1843 bytes Desc: not available URL: <http://mail.haskell.org/pipermail/beginners/attachments/20191128/38f52f24/attachment-0001.key> -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 477 bytes Desc: OpenPGP digital signature URL: <http://mail.haskell.org/pipermail/beginners/attachments/20191128/38f52f24/attachment-0001.sig> ------------------------------ Message: 2 Date: Thu, 28 Nov 2019 16:43:30 +0100 From: Simon Jakobi <simon.jak...@googlemail.com> To: Leonhard Applis <leonhard.app...@protonmail.com>, The Haskell-Beginners Mailing List - Discussion of primarily beginner-level topics related to Haskell <beginners@haskell.org> Subject: Re: [Haskell-beginners] Providing Haskell Libraries wrapped for other Languages Message-ID: <CAGtp2ShEN3HqQb2GAsPniZecStDSkqunUOz=tg7ou3tatrx...@mail.gmail.com> Content-Type: text/plain; charset="UTF-8" Hi Leonhard, I don't have any experience with calling Haskell from other languages but I am aware of this project: https://github.com/nh2/call-haskell-from-anything I hope it's useful to you. Cheers, Simon Am Do., 28. Nov. 2019 um 15:15 Uhr schrieb Leonhard Applis <leonhard.app...@protonmail.com>: > > Hi, > > I am currently writing a small library. > I will provide a small web-api for it, however I have some colleagues who > neither have experience in haskell, nor in web-dev. > Also they maybe want to produce programs using my library without internet / > docker / etc. > > So in addition I'd like to provide the library "wrapped" for other languages, > especially python, but maybe java as well. > These wrappers should do nothing except invoking their pardons on the > library, and should somewhat contain the library. > > What is the common way to do this? > > > > I've seen "hyphen" as a super heavyweight solution, and I've seen people > starting the haskell library listening on system-pipes. > I don't feel that these are the "best" solutions, atleast for my intention. > > best regards > Leonhard > _______________________________________________ > Beginners mailing list > Beginners@haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners ------------------------------ Message: 3 Date: Fri, 29 Nov 2019 10:55:35 +0000 From: PICCA Frederic-Emmanuel <frederic-emmanuel.pi...@synchrotron-soleil.fr> To: "The Haskell-Beginners Mailing List - Discussion of primarily beginner-level topics related to Haskell" <beginners@haskell.org> Subject: [Haskell-beginners] strange error inside a case Message-ID: <a2a20ec3b8560d408356cac2fc148e53017d83a...@sun-dag3.synchrotron-soleil.fr> Content-Type: text/plain; charset="Windows-1252" Hello, I aheve some code whcih look like this thumbnail' :: (MonadIO m, MonadReader Beamline m, MonadThrow m) => ThumbnailInput -> m () thumbnail' (ThumbnailInput col) = do cwd <- toResultsPath "thumbnail" col let shakeFiles' = cwd </> $(mkRelDir ".shake/") let shakeReport' = shakeFiles' </> $(mkRelFile "report.html") liftIO $ shake shakeOptions{ shakeFiles=fromAbsDir shakeFiles' , shakeReport=[fromAbsFile shakeReport'] , shakeVerbosity=Diagnostic } $ do let uploaded = fromAbsFile $ cwd </> $(mkRelFile "thumbnail.uploaded") want [uploaded] -- (Rule 1) merge the image files uploaded %> \_out -> do -- need [xml] masters <- liftIO $ expectedInputFiles col liftIO $ hdf2mergedcbf' (head masters) 1 1 liftIO $ case col of (SomeDataCollection SCollect SHdf5 _) -> hdf2mergedcbf' (head masters) 1 1 (SomeDataCollection SCollect SHdf5' _) -> undefined -- hdf2mergedcbf' (head masters) 1 1 (SomeDataCollection SCaracterization SHdf5 _) -> undefined (SomeDataCollection SCaracterization SHdf5' _) -> undefined _ -> error "show not arrive here !!!" -- hdf2mergedcbf -- command [] "touch" [uploaded] return () When I try to compile it, it give me this error • Couldn't match type ‘a0’ with ‘()’ ‘a0’ is untouchable inside the constraints: f ~ 'ISPyB.DataCollection.Hdf5 bound by a pattern with constructor: SHdf5 :: SCollectSourceFormat 'ISPyB.DataCollection.Hdf5, in a case alternative at src/Thumbnail.hs:180:38-42 Expected type: IO a0 Actual type: IO () • In the expression: hdf2mergedcbf' (head masters) 1 1 In a case alternative: (SomeDataCollection SCollect SHdf5 _) -> hdf2mergedcbf' (head masters) 1 1 In the second argument of ‘($)’, namely ‘case col of (SomeDataCollection SCollect SHdf5 _) -> hdf2mergedcbf' (head masters) 1 1 (SomeDataCollection SCollect SHdf5' _) -> undefined (SomeDataCollection SCaracterization SHdf5 _) -> undefined (SomeDataCollection SCaracterization SHdf5' _) -> undefined _ -> error "show not arrive here !!!"’ | 180 | (SomeDataCollection SCollect SHdf5 _) -> hdf2mergedcbf' (head masters) 1 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ What I do not understand is how to fix this since it seems that liftIO $ hdf2mergedcbf' (head masters) 1 1 works out of the case thanks for your help Frederic ------------------------------ Message: 4 Date: Fri, 29 Nov 2019 12:29:23 +0100 From: Sylvain Henry <sylv...@haskus.fr> To: <beginners@haskell.org> Subject: Re: [Haskell-beginners] strange error inside a case Message-ID: <7c062774-ff78-569a-fba5-543eccf7c...@haskus.fr> Content-Type: text/plain; charset="utf-8"; format=flowed Hello, What is the type of hdf2mergedcbf' ? Does it work if you write `void (hdf2mergedcbf' (head masters) 1 1)` ? On 29/11/2019 11:55, PICCA Frederic-Emmanuel wrote: > Hello, I aheve some code whcih look like this > > thumbnail' :: (MonadIO m, MonadReader Beamline m, MonadThrow m) => > ThumbnailInput -> m () > thumbnail' (ThumbnailInput col) = do > cwd <- toResultsPath "thumbnail" col > let shakeFiles' = cwd </> $(mkRelDir ".shake/") > let shakeReport' = shakeFiles' </> $(mkRelFile "report.html") > > liftIO $ shake shakeOptions{ shakeFiles=fromAbsDir shakeFiles' > , shakeReport=[fromAbsFile shakeReport'] > , shakeVerbosity=Diagnostic > } $ do > let uploaded = fromAbsFile $ cwd </> $(mkRelFile "thumbnail.uploaded") > > want [uploaded] > > -- (Rule 1) merge the image files > uploaded %> \_out -> do > -- need [xml] > masters <- liftIO $ expectedInputFiles col > liftIO $ hdf2mergedcbf' (head masters) 1 1 > liftIO $ case col of > (SomeDataCollection SCollect SHdf5 _) -> hdf2mergedcbf' > (head masters) 1 1 > (SomeDataCollection SCollect SHdf5' _) -> undefined -- > hdf2mergedcbf' (head masters) 1 1 > (SomeDataCollection SCaracterization SHdf5 _) -> undefined > (SomeDataCollection SCaracterization SHdf5' _) -> undefined > _ -> error "show not > arrive here !!!" > > -- hdf2mergedcbf > -- command [] "touch" [uploaded] > return () > > > When I try to compile it, it give me this error > > • Couldn't match type ‘a0’ with ‘()’ > ‘a0’ is untouchable > inside the constraints: f ~ 'ISPyB.DataCollection.Hdf5 > bound by a pattern with constructor: > SHdf5 :: SCollectSourceFormat > 'ISPyB.DataCollection.Hdf5, > in a case alternative > at src/Thumbnail.hs:180:38-42 > Expected type: IO a0 > Actual type: IO () > • In the expression: hdf2mergedcbf' (head masters) 1 1 > In a case alternative: > (SomeDataCollection SCollect SHdf5 _) > -> hdf2mergedcbf' (head masters) 1 1 > In the second argument of ‘($)’, namely > ‘case col of > (SomeDataCollection SCollect SHdf5 _) > -> hdf2mergedcbf' (head masters) 1 1 > (SomeDataCollection SCollect SHdf5' _) -> undefined > (SomeDataCollection SCaracterization SHdf5 _) -> undefined > (SomeDataCollection SCaracterization SHdf5' _) -> undefined > _ -> error "show not arrive here !!!"’ > | > 180 | (SomeDataCollection SCollect SHdf5 _) -> > hdf2mergedcbf' (head masters) 1 1 > | > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > > What I do not understand is how to fix this since it seems that > > liftIO $ hdf2mergedcbf' (head masters) 1 1 works out of the case > > thanks for your help > > Frederic > _______________________________________________ > Beginners mailing list > Beginners@haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners ------------------------------ Subject: Digest Footer _______________________________________________ Beginners mailing list Beginners@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners ------------------------------ End of Beginners Digest, Vol 137, Issue 13 ******************************************