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-request@haskell.org
You can reach the person managing the list at
beginners-owner@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.Applis@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.Applis@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.jakobi@googlemail.com>
To: Leonhard Applis <Leonhard.Applis@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=tG7oU3TAtRXTAw@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.Applis@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.picca@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:
<A2A20EC3B8560D408356CAC2FC148E53017D83AB1A@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 <sylvain@haskus.fr>
To: <beginners@haskell.org>
Subject: Re: [Haskell-beginners] strange error inside a case
Message-ID: <7c062774-ff78-569a-fba5-543eccf7cecd@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
******************************************