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. Monoid algebra (Manny Romero)
2. Addendum: Monoid algebra (Manny Romero)
3. Clarification (last one!): Monoid algebra (Manny Romero)
4. Lost Monad Signature (Quentin Liu)
5. Template Haskell: simple way to "declare" type and instance (Baa)
6. Re: Lost Monad Signature (David McBride)
----------------------------------------------------------------------
Message: 1
Date: Fri, 8 Dec 2017 14:07:02 +0100
From: "Manny Romero" <[email protected]>
To: [email protected]
Subject: [Haskell-beginners] Monoid algebra
Message-ID:
<trinity-65b4ba29-5b83-4729-aab7-de76e20c34b0-1512738422574@3c-app-mailcom-lxa08>
Content-Type: text/plain; charset="utf-8"
An HTML attachment was scrubbed...
URL:
<http://mail.haskell.org/pipermail/beginners/attachments/20171208/6e5157a6/attachment-0001.html>
------------------------------
Message: 2
Date: Fri, 8 Dec 2017 14:32:59 +0100
From: "Manny Romero" <[email protected]>
To: [email protected]
Subject: [Haskell-beginners] Addendum: Monoid algebra
Message-ID:
<trinity-4e095300-a2e9-44e5-86fd-c18e09452612-1512739979176@3c-app-mailcom-lxa08>
Content-Type: text/plain; charset="utf-8"
An HTML attachment was scrubbed...
URL:
<http://mail.haskell.org/pipermail/beginners/attachments/20171208/a9117bd5/attachment-0001.html>
------------------------------
Message: 3
Date: Fri, 8 Dec 2017 14:36:46 +0100
From: "Manny Romero" <[email protected]>
To: [email protected]
Cc: [email protected]
Subject: [Haskell-beginners] Clarification (last one!): Monoid
algebra
Message-ID:
<trinity-61d434e8-430a-4c78-87d9-3da2f00caded-1512740206092@3c-app-mailcom-lxa08>
Content-Type: text/plain; charset="utf-8"
An HTML attachment was scrubbed...
URL:
<http://mail.haskell.org/pipermail/beginners/attachments/20171208/a8f5f5d7/attachment-0001.html>
------------------------------
Message: 4
Date: Fri, 8 Dec 2017 10:37:23 -0500
From: Quentin Liu <[email protected]>
To: The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell <[email protected]>
Subject: [Haskell-beginners] Lost Monad Signature
Message-ID: <bde7c016-6a35-45e0-a996-6e183524fcfa@Spark>
Content-Type: text/plain; charset="utf-8"
Hi,
The function `join` flattens a double-layered monad into one layer and its type
signature is
join :: (Monad m) => m (m a) -> m a
But when the first argument supplied is `(,)`, the type signature becomes
join (,) :: b -> (b, b)
in ghci. The monad constraint is lost when supplied the first argument. So my
question is why the type constraint is lost and what monad is supplied here.
Regards,
Qingbo Liu
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://mail.haskell.org/pipermail/beginners/attachments/20171208/21dc6445/attachment-0001.html>
------------------------------
Message: 5
Date: Fri, 8 Dec 2017 19:38:19 +0200
From: Baa <[email protected]>
To: The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell <[email protected]>
Subject: [Haskell-beginners] Template Haskell: simple way to "declare"
type and instance
Message-ID: <20171208193819.4f54fed3@Pavel>
Content-Type: text/plain; charset=US-ASCII
Hello, All!
Is any way similar to templates (like in Crystal language, Rust, etc)
to create `data X = ...`, `instance Show ...`, etc in TH? I found this
tutorial https://wiki.haskell.org/A_practical_Template_Haskell_Tutorial
but all looks complicated. Or something like Lisp macros, may be some
modern library? Like quasy-quotations but for `data` and `instance`
declarations (I don't know is it possible even) ?
===
Best regards, Paul
------------------------------
Message: 6
Date: Fri, 8 Dec 2017 13:10:49 -0500
From: David McBride <[email protected]>
To: The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell <[email protected]>
Subject: Re: [Haskell-beginners] Lost Monad Signature
Message-ID:
<can+tr40-jqjkuu78mimadqe_qols4akth+zi-0bxujo5dbo...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"
If you type :i Monad in ghci, you will see this instance
instance Monad ((->) r)
What this means is a function where the first argument is of type 'r'... is
a monad. You can in fact use do notation / return on a tuple to manipulate
its second argument monadically.
So let's look at what that does to the type signature of join when 'm' is
((->) b)
join :: Monad m => m (m a) -> m a
-- m = ((->) b)
join :: ((->) b ((->) b a)) -> (((->) b a))
Now we just have to move the arrows from prefix to infix. Let's do it step
by step.
join :: ((->) b (b -> a)) -> (b -> a)
join :: (b -> (b -> a)) -> (b -> a)
x -> (y -> z) is equivalent to x -> y -> z
join :: (b -> b -> a) -> (b -> a)
join :: (b -> b -> a) -> b -> a
So now when you put an operator into it that takes two arguments
(,) :: a -> b -> (a,b)
You get the type you saw.
join (,) :: b -> (b, b)
On Fri, Dec 8, 2017 at 10:37 AM, Quentin Liu <[email protected]>
wrote:
> Hi,
>
> The function `join` flattens a double-layered monad into one layer and its
> type signature is
>
> join :: (Monad m) => m (m a) -> m a
>
> But when the first argument supplied is `(,)`, the type signature becomes
>
> join (,) :: b -> (b, b)
>
> in ghci. The monad constraint is lost when supplied the first argument. So
> my question is why the type constraint is lost and what monad is supplied
> here.
>
> Regards,
> Qingbo Liu
>
> _______________________________________________
> Beginners mailing list
> [email protected]
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://mail.haskell.org/pipermail/beginners/attachments/20171208/02a348a0/attachment.html>
------------------------------
Subject: Digest Footer
_______________________________________________
Beginners mailing list
[email protected]
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
------------------------------
End of Beginners Digest, Vol 114, Issue 10
******************************************