Send Beginners mailing list submissions to
[email protected]
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
[email protected]
You can reach the person managing the list at
[email protected]
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 <[email protected]>
To: "[email protected]" <[email protected]>
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 - [email protected] - 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 <[email protected]>
To: Leonhard Applis <[email protected]>, The
Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell <[email protected]>
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
<[email protected]>:
>
> 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
> [email protected]
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
------------------------------
Message: 3
Date: Fri, 29 Nov 2019 10:55:35 +0000
From: PICCA Frederic-Emmanuel
<[email protected]>
To: "The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell" <[email protected]>
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 <[email protected]>
To: <[email protected]>
Subject: Re: [Haskell-beginners] strange error inside a case
Message-ID: <[email protected]>
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
> [email protected]
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
------------------------------
Subject: Digest Footer
_______________________________________________
Beginners mailing list
[email protected]
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
------------------------------
End of Beginners Digest, Vol 137, Issue 13
******************************************