From anthony_clayden at clear.net.nz Sun Dec 1 02:36:58 2019 From: anthony_clayden at clear.net.nz (Anthony Clayden) Date: Sun, 1 Dec 2019 15:36:58 +1300 Subject: [Haskell-cafe] Is UndecidableInstances unavoidable in heterogenous Show derivation? Message-ID: > ... was mildly surprised by the need for -XUndecidableInstances > when deriving the 'Show' instance for the heterogenous N-ary product 'NP': Hi Viktor, yes 'Undecidable' sounds scary, but it isn't. There's been much debate: should we find a less scary name? Presumably your program compiles and runs OK with that switched on(?) Providing your program compiles, it is type-safe. The risk with -XUndecidableInstances is that you might throw the compiler into a loop, in which case you'll get a stack depth check, with an unhelpful error message. See the Users Guide on UndecidableInstances, also this is a faq on StackOverflow. > deriving instance All (Compose Show f) xs => Show (NP f xs) Yes the constraint on that instance violates the Paterson Conditions (see Users Guide), the constraint is no smaller than the instance head. The P Conditions aim to make each step of instance resolution smaller, by strictly decreasing "constructors and variables (taken together ...". But that constraint has a count of 4, same as the head. > I guess I should also ask whether there's a way to define something equivalent > to 'Compose' without 'UndecidableSuperClasses', and perhaps the two are not unrelated. Not exactly related, but again superclass instance resolution wants to make the problem smaller at each step. The definition for class Compose has a constraint no smaller than the class head (3 variables). > [ Perhaps I should be more blasé about enabling these extensions, but I prefer > to leave sanity checks enabled when possible. ] Yes that's a sensible policy. The trouble with -XUndecidableInstances is that it's a module-wide setting, so lifts the check for all instances of all classes. There are/were several proposals to make this a per-instance or per-class pragma. But they got no support in the proposals process. AntC -------------- next part -------------- An HTML attachment was scrubbed... URL: From ietf-dane at dukhovni.org Sun Dec 1 04:06:00 2019 From: ietf-dane at dukhovni.org (Viktor Dukhovni) Date: Sat, 30 Nov 2019 23:06:00 -0500 Subject: [Haskell-cafe] Is UndecidableInstances unavoidable in heterogenous Show derivation? In-Reply-To: References: Message-ID: <20191201040600.GT34850@straasha.imrryr.org> On Sun, Dec 01, 2019 at 03:36:58PM +1300, Anthony Clayden wrote: > > ... was mildly surprised by the need for -XUndecidableInstances when > > deriving the 'Show' instance for the heterogenous N-ary product > > 'NP': > > There's been much debate: should we find a less scary name? Perhaps, though the old name would have to stick around as an alias for a few major releases. But if the idea is to discourage the use of the extension when not essential, it's working! :-) > Presumably your program compiles and runs OK with that switched on(?) Yes. > > I guess I should also ask whether there's a way to define something > > equivalent to 'Compose' without 'UndecidableSuperClasses', and > > perhaps the two are not unrelated. > > Not exactly related, but again superclass instance resolution wants to > make the problem smaller at each step. The definition for class > Compose has a constraint no smaller than the class head (3 variables). What surprises me about 'Compose' is that it is not really trying to define a class as such, rather it aims to construct a new constraint (family) from an existing one. The definition feels like a subtle hack, used only for lack of a more natural syntax: http://hackage.haskell.org/package/type-combinators-0.2.4.3/docs/src/Type-Family-Constraint.html#Comp class d (c a) => Comp (d :: l -> Constraint) (c :: k -> l) (a :: k) instance d (c a) => Comp d c a I'd have expected instead something more akin to: type family Comp2 (c :: l -> Constraint) (f :: k -> l) :: k -> Constraint where Comp2 c f = \x -> c (f x) -- Oops, no type-level lambdas -- or Comp2 c f x = c (f x) -- Oops, too many LHS parameters but there seems to be no direct way to express this type of composite constraint, without inventing the clever paired class and instance. While I can write: type family Comp2 (c :: l -> Constraint) (f :: k -> l) (x :: k) :: Constraint where Comp2 c f x = c (f x) And partial application of Comp2 even has the expected kind: λ> :k Comp2 Show (K Int) Comp2 Show (K Int) :: k -> Constraint sadly, one can't actually use "Comp2 Show f": λ> deriving instance All (Comp2 Show f) xs => Show (NP f xs) • The type family ‘Comp2’ should have 3 arguments, but has been given 2 • In the context: All (Comp2 Show f) xs While checking an instance declaration In the stand-alone deriving instance for ‘All (Comp2 Show f) xs => Show (NP f xs)’ So the class/instance pair seems to be the only way. > Yes that's a sensible policy. The trouble with -XUndecidableInstances > is that it's a module-wide setting, so lifts the check for all > instances of all classes. So it seems best to isolate the code that needs this in as a small module as possible, and do without everywhere else. -- Viktor. From jack at jackkelly.name Mon Dec 2 22:40:43 2019 From: jack at jackkelly.name (Jack Kelly) Date: Tue, 3 Dec 2019 11:40:43 +1300 Subject: [Haskell-cafe] ANN: reflex-libtelnet-0.1.0.0 Message-ID: I have just pushed an initial release of reflex-libtelnet[1] to Hackage. reflex-libtelnet wraps libtelnet[2] in a Reflex interface, so that you can describe data flows through a telnet state tracker using Reflex Events. Even if you're not using Telnet in 2019, you might find it interesting as a study in binding Reflex to a callback-oriented library. A telnet echo server is provided as an example[3]. Bug reports[4] and questions/patches[5] are welcome on Sourcehut. Best, -- Jack [1]: https://hackage.haskell.org/package/reflex-libtelnet-0.1.0.0 [2]: https://hackage.haskell.org/package/libtelnet [3]: https://git.sr.ht/~jack/reflex-libtelnet/tree/master/reflex-libtelnet-example/src/Main.hs [4]: https://todo.sr.ht/~jack/reflex-libtelnet [5]: https://lists.sr.ht/~jack/reflex-libtelnet-discuss From brucker at spamfence.net Tue Dec 3 13:54:14 2019 From: brucker at spamfence.net (Achim D. Brucker) Date: Tue, 3 Dec 2019 13:54:14 +0000 Subject: [Haskell-cafe] Open Position: Lecturer in Cybersecurity - University of Exeter Message-ID: <20191203135414.5zacjoyllfqgzwvx@ananogawa.home.brucker.ch> Dear all, As part of the expansion of the Department of Computer Science [1] at the University of Exeter, we are recruiting for a Lecturer in Cybersecurity. The lecturer will be part of the newly formed Security and Trust of Advanced Systems Group [2]. This is a *unique* opportunity to join a new group and to influence its future research and teaching. We are looking for a candidate with an outstanding research record in any area of cybersecurity such as (but not limited to): language-based security, access control, usable security, software security, formal methods for security, security analytics, security protocols, human aspects of security, security economics, security by design, applied cryptography, security testing. We are particularly keen on research areas that either extend the current strength in software security and formal methods in security or that complement these existing focus area. Please apply by 12th of December 2019! See the full announcement and application details at https://jobs.exeter.ac.uk/hrpr_webrecruitment/wrd/run/ETREC107GF.open?VACANCY_ID=566815Qrwu&WVID=3817591jNg Feel free to contact me for informal inquires about the post. Best, Achim [1] https://www.exeter.ac.uk/computer-science/ [2] https://emps.exeter.ac.uk/computer-science/research/cyber-security/ -- Prof. Achim Brucker | Chair in Cybersecurity & Head of Group | University of Exeter https://www.brucker.ch | https://logicalhacking.com/blog @adbrucker | @logicalhacking From simon at joyful.com Tue Dec 3 21:51:22 2019 From: simon at joyful.com (Simon Michael) Date: Tue, 3 Dec 2019 13:51:22 -0800 Subject: [Haskell-cafe] ANN: hledger 1.16 Message-ID: <2B7140B8-B050-4199-8655-8102E2A02496@joyful.com> I'm pleased to announce hledger 1.16.1 ! hledger 1.16 was released on schedule on 2019-12-01, but only to hackage and github, since I was travelling and behind a rain-disrupted microwave link. Today brings the release notes & docs updates on hledger.org, and a 1.16.1 point release with some packaging updates. Thanks to release contributors Dmitry Astapov, Mykola Orliuk, Brian Wignall, Alejandro García Montoro, Timofey ZAKREVSKIY, Amitai Burstein, and Michael Kainer. hledger is a robust, cross-platform, multicurrency, plain text accounting tool, with command-line, terminal and web UIs. It is one of the leading implementations of plain text accounting, and is a modern and largely compatible reimplementation of Ledger. Use it for tracking money, time, stocks, cryptocurrencies or any other commodity, Learn more at http://hledger.org and http://plaintextaccounting.org . WHAT'S NEW: GHC 8.8 support, much more powerful CSV conversion rules, percentage balance reports, misc improvements. https://hledger.org/release-notes#hledger-1-16 . GETTING STARTED: Many install methods are described at http://hledger.org/download . Some of these might take a few days to become up to date; look for the green badges. You can build the latest by doing: stack update; stack install --resolver=lts hledger-lib-1.16.1 hledger-1.16.1 hledger-ui-1.16.1 hledger-web-1.16.1 --silent or: cabal v2-update; cabal v2-install hledger-1.16.1 hledger-web-1.16.1 hledger-ui-1.16.1 To start recording transactions: "hledger add". To list more commands: "hledger". See http://hledger.org for docs and support, or join #hledger on Freenode (http://irc.hledger.org), or join via Matrix (http://riot.hledger.org). New and old users, contributors, sponsors, and all feedback are most welcome! Best, -Simon From lexi.lambda at gmail.com Fri Dec 6 09:10:57 2019 From: lexi.lambda at gmail.com (Alexis King) Date: Fri, 6 Dec 2019 03:10:57 -0600 Subject: [Haskell-cafe] [RFC] Constraint based arrow notation (GHC proposal) Message-ID: <4D37018D-47BC-4676-A8D8-ABFACE3CB8E9@gmail.com> Hello all, I have recently written a GHC proposal to change the typechecking rules for arrow notation (aka `proc`) to better support custom control operators. Specifically, it reverses a change made in GHC 7.8 due to technical limitations that requires control operators to have significantly uglier types. Although arrows have fallen out of favor with the Haskell community in recent years, presumably there are still at least a few users. If you use `proc` notation, and especially if you use its support for custom control operators (i.e. (| banana brackets |)), your feedback would be highly valued. To read or comment on the proposal, follow this link: https://github.com/ghc-proposals/ghc-proposals/pull/303 Thanks, Alexis From kolar at fit.vut.cz Fri Dec 6 14:34:30 2019 From: kolar at fit.vut.cz (=?utf-8?B?RHXFoWFuIEtvbMOhxZk=?=) Date: Fri, 06 Dec 2019 15:34:30 +0100 Subject: [Haskell-cafe] "Deep" Coding Support in Haskell Message-ID: <5411599.I7XVEdbL9y@pckolar> Dear Café, let me allow quite naive question, is there any library/tool/plugin supporting rapid application development in Haskell? I mean something that supports code completion, hints, help, code refactoring etc. Similar to Java support in e.g. Eclipse or IntelliJ IDEA. So far, I've found support for Vim, Eclipse. Nevertheless, my question goes farther - for implicit GUI editor/application development environment like Eclipse. Several years ago, I was able to run something in Eclipse, but not with good results. These days it seems dead (since 2015). Similarly, for IntelliJ IDEA - installed community version, downloaded Haskell plugin, tried to install additional plugins inside IntelliJ IDE, but after that no support for Haskell project (I'm on Arch linux, IDE from AUR, plugin install inside failed, downloaded it from https://plugins.jetbrains.com/plugin/8258-intellij-haskell/ versions[1] and it worked, at least installation, other plugins installed inside IDE worked partially - some of them were disabled by GUI after error). I'm sorry if I'm asking natural question. I've not found any additional how-tos to make it work... Best regards, Dusan -------- [1] https://plugins.jetbrains.com/plugin/8258-intellij-haskell/versions -------------- next part -------------- An HTML attachment was scrubbed... URL: From m at jaspervdj.be Fri Dec 6 14:39:42 2019 From: m at jaspervdj.be (Jasper Van der Jeugt) Date: Fri, 6 Dec 2019 15:39:42 +0100 Subject: [Haskell-cafe] ZuriHac 2020 (12-14 June) registration is now open Message-ID: <20191206143942.GA1189@kakigori> Hi Haskell friends! We are happy to announce that ZuriHac 2020 will take place from Friday the 12th to Sunday the 14th of June, hosted again at the HSR (https://www.hsr.ch/), on the shores of beautiful Lake Zurich. You can find all the information on: https://zurihac.com The Zurich Haskell Hackathon is a free, international, grassroots, and collaborative coding festival. Our goal is to nourish the Haskell community, learn exciting new things, and to have fun working on projects together. This year, we are already excited to announce talks by: - Alexis King - Rob Rix More speakers will be announced later. In addition to talks, we will offer beginner, intermediate, and advanced tracks, similar to last year. The details of this will also be communicated in the coming months. The event is open to any experience level, from beginners to gurus. If you are completely new to Haskell, rest assured that there will be tutorials for you to take, and a bunch of friendly advanced Haskellers to answer your questions and help you along. We will have space for 500 attendees, making this the largest Haskell gathering that we know of! Registration is free and open as of right now: https://zurihac.com/#registration We would also like to thank the Hochschule für Technik Rapperswil for their amazing support and for hosting us again this year. Without them, an event of this scale and quality would be extremely difficult to pull off. We can't wait to see you in June, The Zurich Friends of Haskell (https://zfoh.ch/) From allbery.b at gmail.com Fri Dec 6 15:15:44 2019 From: allbery.b at gmail.com (Brandon Allbery) Date: Fri, 6 Dec 2019 10:15:44 -0500 Subject: [Haskell-cafe] "Deep" Coding Support in Haskell In-Reply-To: <5411599.I7XVEdbL9y@pckolar> References: <5411599.I7XVEdbL9y@pckolar> Message-ID: Part of your problem is that Arch deliberately hobbles its Haskell ecosystem, favoring its maintainers over users, so if you install Haskell and IntelliJ from AUR you need to make sure to build all Haskell projects or IntelliJ plugins fully dynamic instead of the default static or they will be broken (and this will cause problems later as upgrades can require manually rebuilding any dependents). It's generally better to install anything Haskell-related from scratch on Arch instead of relying on AUR. On Fri, Dec 6, 2019 at 9:34 AM Dušan Kolář wrote: > Dear Café, > > > > let me allow quite naive question, is there any library/tool/plugin > supporting rapid application development in Haskell? I mean something that > supports code completion, hints, help, code refactoring etc. Similar to > Java support in e.g. Eclipse or IntelliJ IDEA. > > > > So far, I've found support for Vim, Eclipse. Nevertheless, my question > goes farther - for implicit GUI editor/application development environment > like Eclipse. Several years ago, I was able to run something in Eclipse, > but not with good results. These days it seems dead (since 2015). > > > > Similarly, for IntelliJ IDEA - installed community version, downloaded > Haskell plugin, tried to install additional plugins inside IntelliJ IDE, > but after that no support for Haskell project (I'm on Arch linux, IDE from > AUR, plugin install inside failed, downloaded it from > https://plugins.jetbrains.com/plugin/8258-intellij-haskell/versions and > it worked, at least installation, other plugins installed inside IDE worked > partially - some of them were disabled by GUI after error). > > > > I'm sorry if I'm asking natural question. I've not found any additional > how-tos to make it work... > > > > Best regards, > > > > Dusan > > > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. -- brandon s allbery kf8nh allbery.b at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From mail at nh2.me Fri Dec 6 20:12:30 2019 From: mail at nh2.me (=?UTF-8?Q?Niklas_Hamb=c3=bcchen?=) Date: Fri, 6 Dec 2019 21:12:30 +0100 Subject: [Haskell-cafe] "Deep" Coding Support in Haskell In-Reply-To: <5411599.I7XVEdbL9y@pckolar> References: <5411599.I7XVEdbL9y@pckolar> Message-ID: <74ece84a-1925-11ff-c457-bde03353f2dd@nh2.me> Hi, There is no IDE for Haskell on par with the high-quality IDEs you have for Java. There are various basic editor integrations that you have to set up manually, and there are various newer efforts to build more integrated tools (such as haskell-ide-engine), but they are still a long shot from what you'd expect as an Eclipse, IntelliJ, or Visual Studio user. Most people currently use one of these integrations together with their editors of choice. For example, I currently mainly use Sublime with ghcid (https://github.com/nh2/ghcid-sublime). The need for and benefit of IDEs in Haskell is less pronounced than in e.g. Java, so you can still develop things very rapidly in Haskell without an IDE. That said, if we had high-quality IDEs available, it would certainly be a further improvement. Also relevant: https://ro-che.info/ccc/26 All attempts to build a successful and economically viable IDE for Haskell, on any platform, seem to have failed so far. Making a good IDE takes years of work, people expect all developer tooling to be open-source (which is a good thing, but extremely few people seem to want to contribute monetarily then), and so things in this space are are moving slowly, driven by people's free time contributions, as they did 8 years ago when I started with Haskell. (Background: I have contributed to various such tools, maintained SublimeHaskell for a while, and have tried out most available Haskell tooling.) Niklas From ruben.astud at gmail.com Sat Dec 7 01:07:03 2019 From: ruben.astud at gmail.com (Ruben Astudillo) Date: Fri, 6 Dec 2019 22:07:03 -0300 Subject: [Haskell-cafe] "Deep" Coding Support in Haskell In-Reply-To: <5411599.I7XVEdbL9y@pckolar> References: <5411599.I7XVEdbL9y@pckolar> Message-ID: <3e9b4d7b-b82a-a92f-2ec2-c3cd5eaa9edf@gmail.com> On 06-12-19 11:34, Dušan Kolář wrote: > So far, I've found support for Vim, Eclipse. Nevertheless, my question > goes farther - for implicit GUI editor/application development environment like > Eclipse. For the UI builder, if you are using gi-gtk, you can use glade to create a UI and load the xml generated with gi-gtk. -- Ruben -- PGP: 4EE9 28F7 932E F4AD From jo at durchholz.org Sat Dec 7 10:37:33 2019 From: jo at durchholz.org (Joachim Durchholz) Date: Sat, 7 Dec 2019 11:37:33 +0100 Subject: [Haskell-cafe] "Deep" Coding Support in Haskell In-Reply-To: <74ece84a-1925-11ff-c457-bde03353f2dd@nh2.me> References: <5411599.I7XVEdbL9y@pckolar> <74ece84a-1925-11ff-c457-bde03353f2dd@nh2.me> Message-ID: <18acfa73-3a79-01e3-8bc3-f7db189f1069@durchholz.org> Am 06.12.19 um 21:12 schrieb Niklas Hambüchen: > All attempts to build a successful and economically viable IDE for Haskell, on any platform, seem to have failed so far. Making a good IDE takes years of work, people expect all developer tooling to be open-source (which is a good thing, but extremely few people seem to want to contribute monetarily then), and so things in this space are are moving slowly, driven by people's free time contributions, as they did 8 years ago when I started with Haskell. I see that Alan Zimmerman maintains an LSP server (haskell-ide-engine). LSP is supported by most if not all modern IDEs. See https://microsoft.github.io/language-server-protocol/ Disclaimer: I have no idea how stable, complete, or practically useful this all is. I'd expect the LSP support in modern IDEs to be pretty complete but I wouldn't be surprised if there were a bad surprise there, and I have no idea what haskell-ide-engien covers. Regards, Jo From fa-ml at ariis.it Sun Dec 8 05:00:14 2019 From: fa-ml at ariis.it (Francesco Ariis) Date: Sun, 8 Dec 2019 06:00:14 +0100 Subject: [Haskell-cafe] [ANN] Venzone, an ASCII adventure/platformer Message-ID: <20191208050014.GA14854@x60s.casa> Hello -cafe, I am pleased to announce the release of `venzone`, an ASCII platform/adventure game. See it in action here: http://www.ariis.it/static/articles/venzone/venzone-cast.gif Get it (binaries or source) in the game page [1] or check Discourse [2] for a more details on the release. Happy festivities everyone! -F [1] http://www.ariis.it/static/articles/venzone/page.html [2] https://discourse.haskell.org/t/venzone-an-ascii-adventure-platformer-written-in-haskell/1004 From m at jaspervdj.be Sun Dec 8 22:04:13 2019 From: m at jaspervdj.be (Jasper Van der Jeugt) Date: Sun, 8 Dec 2019 23:04:13 +0100 Subject: [Haskell-cafe] Call for Haskell.org Committee Nominations Message-ID: <20191208220413.GB5365@kakigori> Dear Haskellers, It is time to put out a call for new nominations (typically but not necessarily self-nominations) to the Haskell.org committee. We have three members of our committee due for retirement -- Jasper Van der Jeugt, Niki Vazou, and Mitsutoshi Aoe. To nominate yourself, please send an email to committee at haskell.org by the 7th of January, 2020. The retiring members are eligible to re-nominate themselves. Please feel free to include any information about yourself that you think will help us to make a decision. The Haskell.org committee serves as a board of directors for Haskell.org, a 501(c)3 nonprofit which oversees technical and financial resources related to Haskell community infrastructure. Being a member of the committee does not necessarily require a significant amount of time, but committee members should aim to be responsive during discussions when the committee is called upon to make a decision. Strong leadership, communication, and judgement are very important characteristics for committee members. The role is about setting policy, providing direction/guidance for Haskell.org infrastructure, planning for the long term, and being fiscally responsible with the Haskell.org funds (and donations). As overseers for policy regarding the open source side of Haskell, committee members must also be able to set aside personal or business related bias and make decisions with the good of the open source Haskell community in mind. We seek a broad representation from different segments of the Haskell world -- including but not limited to those focused on education, those focused on industrial applications, those with background in organizing users-groups, and those focused directly on our technical infrastructure. More details about the committee's roles and responsibilities are on https://wiki.haskell.org/Haskell.org_committee If you have any questions about the process, please feel free to e-mail us at committee at haskell.org, or contact one of us individually. Warm regards, Jasper Van der Jeugt From spiridempt at gmail.com Tue Dec 10 13:57:17 2019 From: spiridempt at gmail.com (F L) Date: Tue, 10 Dec 2019 21:57:17 +0800 Subject: [Haskell-cafe] Why many .tix files are generated in Haskell Program Coverage Message-ID: I am using Haskell Program Coverage (HPC) to collect coverage information for Pandoc (https://github.com/jgm/pandoc). However, after adding the -fhpc option to GHC and running the program, two .tix files are generated. One is test-pandoc.tix in the main directory and the other is pandoc.tix under the "test" directory (test/pandoc.tix). These two files have different contents and I just cannot see the meaning of them from their names. Moreover, I tried to execute "hpc show xxx.tix" for them and test/pandoc.tix gives "hpc: hash in tix file for module Main does not match hash in ./.hpc/Main.mix". So, I wonder the specific generation rules of HPC tix files (possibly including the number and location) and how I can get the correct coverage information. Thanks very much! -------------- next part -------------- An HTML attachment was scrubbed... URL: From kolar at fit.vut.cz Tue Dec 10 14:45:36 2019 From: kolar at fit.vut.cz (=?utf-8?B?RHXFoWFuIEtvbMOhxZk=?=) Date: Tue, 10 Dec 2019 15:45:36 +0100 Subject: [Haskell-cafe] "Deep" Coding Support in Haskell In-Reply-To: <18acfa73-3a79-01e3-8bc3-f7db189f1069@durchholz.org> References: <5411599.I7XVEdbL9y@pckolar> <74ece84a-1925-11ff-c457-bde03353f2dd@nh2.me> <18acfa73-3a79-01e3-8bc3-f7db189f1069@durchholz.org> Message-ID: <13092319.MKDlYCTBAk@pckolar> Thank all of you for responses, I've finally given up with IntelliJ IDEA. The Haskell plugins stick on unsupported tools. Moreover, it requires direct installation, no way to make it work with stack. The IDE is not working at all. I'll try your suggestions, thanks a lot. Dusan On sobota 7. prosince 2019 11:37:33 CET Joachim Durchholz wrote: > Am 06.12.19 um 21:12 schrieb Niklas Hambüchen: > > All attempts to build a successful and economically viable IDE for > > Haskell, on any platform, seem to have failed so far. Making a good IDE > > takes years of work, people expect all developer tooling to be > > open-source (which is a good thing, but extremely few people seem to want > > to contribute monetarily then), and so things in this space are are > > moving slowly, driven by people's free time contributions, as they did 8 > > years ago when I started with Haskell. > I see that Alan Zimmerman maintains an LSP server (haskell-ide-engine). > LSP is supported by most if not all modern IDEs. > See https://microsoft.github.io/language-server-protocol/ > > Disclaimer: I have no idea how stable, complete, or practically useful > this all is. I'd expect the LSP support in modern IDEs to be pretty > complete but I wouldn't be surprised if there were a bad surprise there, > and I have no idea what haskell-ide-engien covers. > > Regards, > Jo > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. -------------- next part -------------- An HTML attachment was scrubbed... URL: From vamchale at gmail.com Tue Dec 10 15:45:02 2019 From: vamchale at gmail.com (Vanessa McHale) Date: Tue, 10 Dec 2019 09:45:02 -0600 Subject: [Haskell-cafe] Why many .tix files are generated in Haskell Program Coverage In-Reply-To: References: Message-ID: <9608541C-4FCE-4280-9332-335513D3848F@gmail.com> What I would do would be run cabal test --enable-coverage cabal-install has reasonably good support for coverage builds Cheers, Vanessa > On Dec 10, 2019, at 7:57 AM, F L wrote: > > I am using Haskell Program Coverage (HPC) to collect coverage information for Pandoc (https://github.com/jgm/pandoc ). However, after adding the -fhpc option to GHC and running the program, two .tix files are generated. One is test-pandoc.tix in the main directory and the other is pandoc.tix under the "test" directory (test/pandoc.tix). These two files have different contents and I just cannot see the meaning of them from their names. Moreover, I tried to execute "hpc show xxx.tix" for them and test/pandoc.tix gives "hpc: hash in tix file for module Main does not match hash in ./.hpc/Main.mix". > So, I wonder the specific generation rules of HPC tix files (possibly including the number and location) and how I can get the correct coverage information. > Thanks very much! > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. -------------- next part -------------- An HTML attachment was scrubbed... URL: From kolar at fit.vut.cz Tue Dec 10 16:03:17 2019 From: kolar at fit.vut.cz (=?utf-8?B?RHXFoWFuIEtvbMOhxZk=?=) Date: Tue, 10 Dec 2019 17:03:17 +0100 Subject: [Haskell-cafe] stack install ghcide fails Message-ID: <4215385.LpQGbqJ5uc@pckolar> Hello Café, Using stack, I've tried stack install ghcide, it reported to put the following into my global extra-deps: - haskell- lsp-0.17.0.0 at sha256:ddfcc2798f04bcb1ec20fafc02c03faa197322192578e879cef5852 aba43ebcb,5264 - haskell-lsp- types-0.17.0.0 at sha256:9078237412d0596a7d09d432389c8fa21d6f3e21ed2ed761b3 093a21607d6c28,2941 - hie- bios-0.2.1 at sha256:5f98a3516ce65e0a3ffd88bf6fb416b04cc084371d0fbf0e1762780d e1d652ce,3219 - rope-utf16- splay-0.3.1.0 at sha256:15a53c57f8413d193054bb5f045929edae3b2669def4c6af6319 7b30dc1d5003,2029 Nevertheless, the build failed anyway: stack install ghcide ghcide> configure ghcide> Configuring ghcide-0.0.4... ghcide> build ghcide> Preprocessing library for ghcide-0.0.4.. ghcide> Building library for ghcide-0.0.4.. ghcide> [ 1 of 33] Compiling Development.IDE.Core.Debouncer ghcide> [ 2 of 33] Compiling Development.IDE.Core.PositionMapping ghcide> [ 3 of 33] Compiling Development.IDE.GHC.Compat ghcide> [ 4 of 33] Compiling Development.IDE.GHC.CPP ghcide> [ 5 of 33] Compiling Development.IDE.Spans.Type ghcide> [ 6 of 33] Compiling Development.IDE.Types.Location ghcide> [ 7 of 33] Compiling Development.IDE.Types.Diagnostics ghcide> [ 8 of 33] Compiling Development.IDE.LSP.Protocol ghcide> [ 9 of 33] Compiling Development.IDE.GHC.Util ghcide> [10 of 33] Compiling Development.IDE.GHC.Orphans ghcide> [11 of 33] Compiling Development.IDE.Import.DependencyInformation ghcide> [12 of 33] Compiling Development.IDE.GHC.Error ghcide> [13 of 33] Compiling Development.IDE.Import.FindImports ghcide> [14 of 33] Compiling Development.IDE.GHC.Warnings ghcide> [15 of 33] Compiling Development.IDE.Core.Preprocessor ghcide> [16 of 33] Compiling Development.IDE.Core.RuleTypes ghcide> [17 of 33] Compiling Development.IDE.Types.Logger ghcide> [18 of 33] Compiling Development.IDE.Types.Options ghcide> [19 of 33] Compiling Development.IDE.Core.Shake ghcide> ghcide> /tmp/stack204611/ghcide-0.0.4/src/Development/IDE/Core/Shake.hs:106:5: error: ghcide> • No instance for (Control.Monad.Fail.MonadFail Rules) ghcide> arising from a do statement ghcide> with the failable pattern ‘Just x’ ghcide> • In a stmt of a 'do' block: ghcide> Just x <- getShakeExtraRules @ShakeExtras ghcide> In the expression: ghcide> do Just x <- getShakeExtraRules @ShakeExtras ghcide> return x ghcide> In an equation for ‘getShakeExtrasRules’: ghcide> getShakeExtrasRules ghcide> = do Just x <- getShakeExtraRules @ShakeExtras ghcide> return x ghcide> | ghcide> 106 | Just x <- getShakeExtraRules @ShakeExtras ghcide> | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ghcide> -- While building package ghcide-0.0.4 using: /home/kolar/.stack/setup-exe-cache/x86_64-linux-tinfo6/Cabal- simple_mPHDZzAJ_2.4.0.1_ghc-8.6.3 --builddir=.stack-work/dist/x86_64-linux-tinfo6/ Cabal-2.4.0.1 build --ghc-options " -fdiagnostics-color=always" Process exited with code: ExitFailure 1 Does that mean the ghcide is broken? Or am I doing something wrong? Best regards, Dusan -------------- next part -------------- An HTML attachment was scrubbed... URL: From curtis.dalves at gmail.com Tue Dec 10 16:37:09 2019 From: curtis.dalves at gmail.com (Curtis D'Alves) Date: Tue, 10 Dec 2019 11:37:09 -0500 Subject: [Haskell-cafe] "Deep" Coding Support in Haskell In-Reply-To: <13092319.MKDlYCTBAk@pckolar> References: <13092319.MKDlYCTBAk@pckolar> Message-ID: <39A4E007-D73A-4AEA-AD65-068706A9C00C@gmail.com> I’m using spacemacs with emacs from AUR and find it pretty feature full. It took a bit of configuration but I got basically everythibb I would want out of an IDE: code completion, on the fly syntax checking, code refactoring with hlint, a nice repl, choice of stack or cabal integration, etc Curtis D’Alves > On Dec 10, 2019, at 9:46 AM, Dušan Kolář wrote: > >  > Thank all of you for responses, I've finally given up with IntelliJ IDEA. The Haskell plugins stick on unsupported tools. Moreover, it requires direct installation, no way to make it work with stack. The IDE is not working at all. > > I'll try your suggestions, thanks a lot. > > Dusan > > > On sobota 7. prosince 2019 11:37:33 CET Joachim Durchholz wrote: > > Am 06.12.19 um 21:12 schrieb Niklas Hambüchen: > > > All attempts to build a successful and economically viable IDE for > > > Haskell, on any platform, seem to have failed so far. Making a good IDE > > > takes years of work, people expect all developer tooling to be > > > open-source (which is a good thing, but extremely few people seem to want > > > to contribute monetarily then), and so things in this space are are > > > moving slowly, driven by people's free time contributions, as they did 8 > > > years ago when I started with Haskell. > > I see that Alan Zimmerman maintains an LSP server (haskell-ide-engine). > > LSP is supported by most if not all modern IDEs. > > See https://microsoft.github.io/language-server-protocol/ > > > > Disclaimer: I have no idea how stable, complete, or practically useful > > this all is. I'd expect the LSP support in modern IDEs to be pretty > > complete but I wouldn't be surprised if there were a bad surprise there, > > and I have no idea what haskell-ide-engien covers. > > > > Regards, > > Jo > > _______________________________________________ > > Haskell-Cafe mailing list > > To (un)subscribe, modify options or view archives go to: > > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > > Only members subscribed via the mailman list are allowed to post. > > > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. From ietf-dane at dukhovni.org Tue Dec 10 16:37:47 2019 From: ietf-dane at dukhovni.org (Viktor Dukhovni) Date: Tue, 10 Dec 2019 11:37:47 -0500 Subject: [Haskell-cafe] stack install ghcide fails In-Reply-To: <4215385.LpQGbqJ5uc@pckolar> References: <4215385.LpQGbqJ5uc@pckolar> Message-ID: <6D7ED784-3461-4D21-A430-8264C9570E9B@dukhovni.org> > On Dec 10, 2019, at 11:03 AM, Dušan Kolář wrote: > > -- While building package ghcide-0.0.4 using: > /home/kolar/.stack/setup-exe-cache/x86_64-linux-tinfo6/Cabal-simple_mPHDZzAJ_2.4.0.1_ghc-8.6.3 --builddir=.stack-work/dist/x86_64-linux-tinfo6/Cabal-2.4.0.1 build --ghc-options " -fdiagnostics-color=always" > Process exited with code: ExitFailure 1 > > > Does that mean the ghcide is broken? Or am I doing something wrong? Taking a quick look at recent ghcide commits, I see: https://github.com/digital-asset/ghcide/commit/e78e1638ea00af7c5bf4fdbae245413eafed4248 which shows changes to a stack.yaml file using "resolver: nightly-2019-12-06". The removed extra-deps are: - haskell-lsp-0.18.0.0 - lsp-test-0.8.2.0 - hslogger-1.3.0.0 - network-bsd-2.8.1.0 and the presumably expectation is that these will show up in a stack release soon. But in the mean time you've selected: - haskell-lsp-0.17.0.0 - haskell-lsp-types-0.17.0.0 - hie-bios-0.2.1 - rope-utf16-splay-0.3.1.0 which are older, and may not work with GHC 8.8.1 (MFP changes) used by recent stack nightly builds. You could try changing the stack.yaml file to use an even more recent nightly, but ultimately, may need to figure out the right versions of the extra dependencies. -- Viktor. From vamchale at gmail.com Tue Dec 10 16:41:40 2019 From: vamchale at gmail.com (Vanessa McHale) Date: Tue, 10 Dec 2019 10:41:40 -0600 Subject: [Haskell-cafe] stack install ghcide fails In-Reply-To: <6D7ED784-3461-4D21-A430-8264C9570E9B@dukhovni.org> References: <4215385.LpQGbqJ5uc@pckolar> <6D7ED784-3461-4D21-A430-8264C9570E9B@dukhovni.org> Message-ID: cabal install ghcide -w ghc-8.8.1 seems to work, so I don’t think it’s ghcide precisely. Cheers, Vanessa > On Dec 10, 2019, at 10:37 AM, Viktor Dukhovni wrote: > >> On Dec 10, 2019, at 11:03 AM, Dušan Kolář wrote: >> >> -- While building package ghcide-0.0.4 using: >> /home/kolar/.stack/setup-exe-cache/x86_64-linux-tinfo6/Cabal-simple_mPHDZzAJ_2.4.0.1_ghc-8.6.3 --builddir=.stack-work/dist/x86_64-linux-tinfo6/Cabal-2.4.0.1 build --ghc-options " -fdiagnostics-color=always" >> Process exited with code: ExitFailure 1 >> >> >> Does that mean the ghcide is broken? Or am I doing something wrong? > > Taking a quick look at recent ghcide commits, I see: > > https://github.com/digital-asset/ghcide/commit/e78e1638ea00af7c5bf4fdbae245413eafed4248 > > which shows changes to a stack.yaml file using "resolver: nightly-2019-12-06". > The removed extra-deps are: > > - haskell-lsp-0.18.0.0 > - lsp-test-0.8.2.0 > - hslogger-1.3.0.0 > - network-bsd-2.8.1.0 > > and the presumably expectation is that these will show up in a stack release soon. > But in the mean time you've selected: > > - haskell-lsp-0.17.0.0 > - haskell-lsp-types-0.17.0.0 > - hie-bios-0.2.1 > - rope-utf16-splay-0.3.1.0 > > which are older, and may not work with GHC 8.8.1 (MFP changes) used by recent > stack nightly builds. You could try changing the stack.yaml file to use an > even more recent nightly, but ultimately, may need to figure out the right > versions of the extra dependencies. > > -- > Viktor. > > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. -------------- next part -------------- An HTML attachment was scrubbed... URL: From allbery.b at gmail.com Tue Dec 10 16:44:35 2019 From: allbery.b at gmail.com (Brandon Allbery) Date: Tue, 10 Dec 2019 11:44:35 -0500 Subject: [Haskell-cafe] stack install ghcide fails In-Reply-To: References: <4215385.LpQGbqJ5uc@pckolar> <6D7ED784-3461-4D21-A430-8264C9570E9B@dukhovni.org> Message-ID: Smells a bit like it only applies the MonadFail instance in ghc 8.8.1, but the build log said ghc 8.6 and implied MonadFailDesugaring enabled from the error message. On Tue, Dec 10, 2019 at 11:42 AM Vanessa McHale wrote: > cabal install ghcide -w ghc-8.8.1 seems to work, so I don’t think it’s > ghcide precisely. > > Cheers, > Vanessa > > On Dec 10, 2019, at 10:37 AM, Viktor Dukhovni > wrote: > > On Dec 10, 2019, at 11:03 AM, Dušan Kolář wrote: > > -- While building package ghcide-0.0.4 using: > /home/kolar/.stack/setup-exe-cache/x86_64-linux-tinfo6/Cabal-simple_mPHDZzAJ_2.4.0.1_ghc-8.6.3 > --builddir=.stack-work/dist/x86_64-linux-tinfo6/Cabal-2.4.0.1 build > --ghc-options " -fdiagnostics-color=always" > Process exited with code: ExitFailure 1 > > > Does that mean the ghcide is broken? Or am I doing something wrong? > > > Taking a quick look at recent ghcide commits, I see: > > > https://github.com/digital-asset/ghcide/commit/e78e1638ea00af7c5bf4fdbae245413eafed4248 > > which shows changes to a stack.yaml file using "resolver: > nightly-2019-12-06". > The removed extra-deps are: > > - haskell-lsp-0.18.0.0 > - lsp-test-0.8.2.0 > - hslogger-1.3.0.0 > - network-bsd-2.8.1.0 > > and the presumably expectation is that these will show up in a stack > release soon. > But in the mean time you've selected: > > - haskell-lsp-0.17.0.0 > - haskell-lsp-types-0.17.0.0 > - hie-bios-0.2.1 > - rope-utf16-splay-0.3.1.0 > > which are older, and may not work with GHC 8.8.1 (MFP changes) used by > recent > stack nightly builds. You could try changing the stack.yaml file to use an > even more recent nightly, but ultimately, may need to figure out the right > versions of the extra dependencies. > > -- > Viktor. > > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. > > > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. -- brandon s allbery kf8nh allbery.b at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From mail at joachim-breitner.de Wed Dec 11 10:10:10 2019 From: mail at joachim-breitner.de (Joachim Breitner) Date: Wed, 11 Dec 2019 11:10:10 +0100 Subject: [Haskell-cafe] Request for Nominations to the GHC Steering Committee Message-ID: Dear Haskell community, the GHC Steering committee is seeking nominations for one new member. The committee scrutinizes, nitpicks, improves, weights and eventually accepts or rejects proposals that extend or change the language supported by GHC and other (public-facing) aspects of GHC. Our processes are described at https://github.com/ghc-proposals/ghc-proposals which is also the GitHub repository where proposals are proposed. We are looking for a member who has the ability * to understand such language extension proposals, * to find holes and missing corner cases in the specifications, * foresee the interaction with other language features and specifications, * comment constructively and improve the proposals, * judge the cost/benefit ratio and * finally come to a justifiable conclusion. We look for committee members who have some of these properties: * have substantial experience in writing Haskell applications or libraries, which they can use to inform judgements about the utility or otherwise of proposed features, * have made active contributions to the Haskell community, for some time, * have expertise in language design and implementation, in either Haskell or related languages, which they can share with us. The committee’s work requires a small, but non-trivial amount of time, especially when you are assigned a proposal for shepherding. We estimate the workload to be around 2 hours per week, and our process works best if members usually respond to technical emails within 1-2 weeks (within days is even better). Please keep that in mind if your email inbox is already overflowing. The GHC developers themselves are already well represented already. We seek Haskell _users_ more than GHC hackers. There is no shortage of people who are eager to get fancy new features into the language, both in the committee and the wider community. But each new feature imposes a cost, to implement, to learn, (particularly) through its unexpected interaction with other features. We need to strike a balance, one that encourages innovation (as GHC always has) while still making Haskell attractive for real-world production use and for teaching. We therefore explicitly invite “conservative” members of the community to join the committee. To make a nomination, please send an email to me (as the committee secretary) at mail at joachim-breitner.de until January 2nd. I will distribute the nominations among the committee, and we will keep the nominations and our deliberations private. We explicitly encourage self-nominations. You can nominate others, but please obtain their explicit consent to do so. (We don’t want to choose someone who turns out to be unable to serve.) On behalf of the committee, Joachim Breitner -- Joachim Breitner mail at joachim-breitner.de http://www.joachim-breitner.de/ From kolar at fit.vut.cz Wed Dec 11 12:25:10 2019 From: kolar at fit.vut.cz (=?utf-8?B?RHXFoWFuIEtvbMOhxZk=?=) Date: Wed, 11 Dec 2019 13:25:10 +0100 Subject: [Haskell-cafe] stack install ghcide fails In-Reply-To: References: <4215385.LpQGbqJ5uc@pckolar> Message-ID: <3708158.P2TvQCp4n6@pckolar> Well, a few moments ago, I was able to successfully run with: stack install ghcide --compiler ghc-8.8.1 and stack.yaml: extra-deps: - haskell-lsp-0.17.0.0 - haskell-lsp-types-0.17.0.0 resolver: nightly-2019-12-06 even if stack was complaining about versions of ghc and cabal. Thanks and regards Dusan Smells a bit like it only applies the MonadFail instance in ghc 8.8.1, but the build log said ghc 8.6 and implied MonadFailDesugaring enabled from the error message. On Tue, Dec 10, 2019 at 11:42 AM Vanessa McHale wrote: cabal install ghcide -w ghc-8.8.1 seems to work, so I don’t think it’s ghcide precisely. Cheers, Vanessa On Dec 10, 2019, at 10:37 AM, Viktor Dukhovni wrote: On Dec 10, 2019, at 11:03 AM, Dušan Kolář wrote: -- While building package ghcide-0.0.4 using: /home/kolar/.stack/setup-exe- cache/x86_64-linux-tinfo6/Cabal-simple_mPHDZzAJ_2.4.0.1_ghc-8.6.3 -- builddir=.stack-work/dist/x86_64-linux-tinfo6/Cabal-2.4.0.1 build --ghc-options " - fdiagnostics-color=always" Process exited with code: ExitFailure 1 Does that mean the ghcide is broken? Or am I doing something wrong? https://github.com/digital-asset/ghcide/commit/ e78e1638ea00af7c5bf4fdbae245413eafed4248[4] http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe[5] _http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe_ brandon s allbery kf8nh allbery.b at gmail.com[6] -- Dusan Kolar tel: +420 54 114 1238 UIFS FIT VUT Brno fax: +420 54 114 1270 Bozetechova 2 e-mail: kolar at fit.vut.cz Brno 612 66 Czech Republic -- -------- [1] mailto:vamchale at gmail.com [2] mailto:ietf-dane at dukhovni.org [3] mailto:kolar at fit.vut.cz [4] https://github.com/digital-asset/ghcide/commit/ e78e1638ea00af7c5bf4fdbae245413eafed4248 [5] http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe [6] mailto:allbery.b at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From rustompmody at gmail.com Thu Dec 12 10:56:25 2019 From: rustompmody at gmail.com (Rustom Mody) Date: Thu, 12 Dec 2019 16:26:25 +0530 Subject: [Haskell-cafe] "Deep" Coding Support in Haskell In-Reply-To: <5411599.I7XVEdbL9y@pckolar> References: <5411599.I7XVEdbL9y@pckolar> Message-ID: On Fri, Dec 6, 2019, 20:05 Dušan Kolář wrote: > Dear Café, > > > > let me allow quite naive question, is there any library/tool/plugin > supporting rapid application development in Haskell? I mean something that > supports code completion, hints, help, code refactoring etc. Similar to > Java support in e.g. Eclipse or IntelliJ IDEA. > > > > So far, I've found support for Vim, Eclipse. Nevertheless, my question > goes farther - for implicit GUI editor/application development environment > like Eclipse. Several years ago, I was able to run something in Eclipse, > but not with good results. These days it seems dead (since 2015). > > > Old but still worth reading: https://blog.osteele.com/2004/11/ides -------------- next part -------------- An HTML attachment was scrubbed... URL: From ben at well-typed.com Thu Dec 12 20:11:14 2019 From: ben at well-typed.com (Ben Gamari) Date: Thu, 12 Dec 2019 15:11:14 -0500 Subject: [Haskell-cafe] [ANNOUNCE] GHC 8.8.2-rc1 is now available Message-ID: <87lfrh719c.fsf@smart-cactus.org> Hello everyone, The GHC team is proud to announce the first release candidate of GHC 8.8.2. The source distribution, binary distributions, and documentation are available at https://downloads.haskell.org/~ghc/8.8.2-rc1 Release notes are also available [1]. This release fixes a handful of issues affecting 8.8.1: - A bug (#17088) in the compacting garbage collector resulting in segmentations faults under specific circumstances. Note that this may affect user programs even if they did not explicitly request the compacting GC (using the -c RTS flag) since GHC may fallback to compacting collection during times of high memory pressure. - A code generation bug (#17334) resulting in GHC panics has been fixed. - A bug in the `process` library causing builds using `hsc2hs` to fail non-deterministically on Windows has been fixed (Trac #17480) - A typechecker bug (#12088) resulting in programs being unexpectedly rejected has been fixed. - A bug in the implementation of compact normal forms resulting in segmentation faults in some uses (#17044) has been fixed. - A bug causing GHC to incorrectly complain about incompatible LLVM versions when using LLVM 7.0.1 has been fixed (#16990). As always, if anything looks amiss do let us know. Happy compiling! Cheers, - Ben [1] https://downloads.haskell.org/ghc/8.8.2-rc1/docs/html/users_guide/8.8.2-notes.html -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 487 bytes Desc: not available URL: From vamchale at gmail.com Thu Dec 12 20:13:04 2019 From: vamchale at gmail.com (Vanessa McHale) Date: Thu, 12 Dec 2019 14:13:04 -0600 Subject: [Haskell-cafe] [ANNOUNCE] GHC 8.8.2-rc1 is now available In-Reply-To: <87lfrh719c.fsf@smart-cactus.org> References: <87lfrh719c.fsf@smart-cactus.org> Message-ID: Pleased to see ARM binaries :) Thanks! Vanessa > On Dec 12, 2019, at 2:11 PM, Ben Gamari wrote: > > > Hello everyone, > > The GHC team is proud to announce the first release candidate of GHC > 8.8.2. The source distribution, binary distributions, and documentation > are available at > > https://downloads.haskell.org/~ghc/8.8.2-rc1 > > Release notes are also available [1]. > > This release fixes a handful of issues affecting 8.8.1: > > - A bug (#17088) in the compacting garbage collector resulting in > segmentations faults under specific circumstances. Note that this may > affect user programs even if they did not explicitly request the > compacting GC (using the -c RTS flag) since GHC may fallback to > compacting collection during times of high memory pressure. > > - A code generation bug (#17334) resulting in GHC panics has been > fixed. > > - A bug in the `process` library causing builds using `hsc2hs` to fail > non-deterministically on Windows has been fixed (Trac #17480) > > - A typechecker bug (#12088) resulting in programs being unexpectedly > rejected has been fixed. > > - A bug in the implementation of compact normal forms resulting in > segmentation faults in some uses (#17044) has been fixed. > > - A bug causing GHC to incorrectly complain about incompatible LLVM > versions when using LLVM 7.0.1 has been fixed (#16990). > > As always, if anything looks amiss do let us know. > > Happy compiling! > > Cheers, > > - Ben > > > [1] https://downloads.haskell.org/ghc/8.8.2-rc1/docs/html/users_guide/8.8.2-notes.html > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. From simon.jakobi at googlemail.com Thu Dec 12 23:20:49 2019 From: simon.jakobi at googlemail.com (Simon Jakobi) Date: Fri, 13 Dec 2019 00:20:49 +0100 Subject: [Haskell-cafe] [ANNOUNCE] GHC 8.8.2-rc1 is now available In-Reply-To: <87lfrh719c.fsf@smart-cactus.org> References: <87lfrh719c.fsf@smart-cactus.org> Message-ID: Thanks for all the bug fixes! :) > - A typechecker bug (#12088) resulting in programs being unexpectedly > rejected has been fixed. https://gitlab.haskell.org/ghc/ghc/issues/12088 is still open and doesn't appear to have seen that much recent activity. Is this the right ticket? Cheers, Simon From ietf-dane at dukhovni.org Mon Dec 16 06:42:39 2019 From: ietf-dane at dukhovni.org (Viktor Dukhovni) Date: Mon, 16 Dec 2019 01:42:39 -0500 Subject: [Haskell-cafe] Haskell 2010 report nit? Message-ID: Not sure where to post about this, and it has likely been noted elsewhere already, but reading through the report I see in Section 3.17.2 > • Consider the following declarations: > > newtype N = N Bool > data D = D !Bool > > These examples illustrate the difference in pattern matching between types defined by data and newtype: > > (\ (N True) -> True) ⊥ ⇒ ⊥ > (\ (D True) -> True) ⊥ ⇒ ⊥ > (\ ~(D True) -> True) ⊥ ⇒ True > > Additional examples may be found in Section 4.2.3. But unlike the examples in 4.2.3, which do show differences between "newtype" and "data", the above does not seem to show any actual difference. For that the pattern after the constructor would I believe have to be irrefutable, which "True" is not. Thus, e.g. the below (which duplicates 4.2.3) would do the job: (\ (N _) -> True) ⊥ ⇒ True (\ (D _) -> True) ⊥ ⇒ ⊥ Perhaps I misunderstood something, but if not, and this has not been noted before, it may be worth fixing in the next revision. -- Viktor. From spiridempt at gmail.com Mon Dec 16 06:55:59 2019 From: spiridempt at gmail.com (F L) Date: Mon, 16 Dec 2019 14:55:59 +0800 Subject: [Haskell-cafe] Why many .tix files are generated in Haskell Program Coverage In-Reply-To: <9608541C-4FCE-4280-9332-335513D3848F@gmail.com> References: <9608541C-4FCE-4280-9332-335513D3848F@gmail.com> Message-ID: Thanks for your reply! Indeed, I plan to collect the coverage information of each test case, which means I need to execute each of them separately and utilize the .tix files. Cheers, Feng Vanessa McHale 于2019年12月10日周二 下午11:45写道: > What I would do would be run > > cabal test --enable-coverage > > cabal-install has reasonably good support for coverage builds > > Cheers, > Vanessa > > On Dec 10, 2019, at 7:57 AM, F L wrote: > > I am using Haskell Program Coverage (HPC) to collect coverage information > for Pandoc (https://github.com/jgm/pandoc). However, after adding the > -fhpc option to GHC and running the program, two .tix files are generated. > One is test-pandoc.tix in the main directory and the other is pandoc.tix > under the "test" directory (test/pandoc.tix). These two files have > different contents and I just cannot see the meaning of them from their > names. Moreover, I tried to execute "hpc show xxx.tix" for them and > test/pandoc.tix gives "hpc: hash in tix file for module Main does not match > hash in ./.hpc/Main.mix". > So, I wonder the specific generation rules of HPC tix files (possibly > including the number and location) and how I can get the correct coverage > information. > Thanks very much! > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From tom-lists-haskell-cafe-2017 at jaguarpaw.co.uk Mon Dec 16 07:32:47 2019 From: tom-lists-haskell-cafe-2017 at jaguarpaw.co.uk (Tom Ellis) Date: Mon, 16 Dec 2019 07:32:47 +0000 Subject: [Haskell-cafe] Haskell 2010 report nit? In-Reply-To: References: Message-ID: <20191216073247.jemodvmnpobmo7ko@weber> On Mon, Dec 16, 2019 at 01:42:39AM -0500, Viktor Dukhovni wrote: > Not sure where to post about this, and it has likely been noted > elsewhere already, but reading through the report I see in Section > 3.17.2 > > > • Consider the following declarations: > > > > newtype N = N Bool > > data D = D !Bool > > > > These examples illustrate the difference in pattern matching between types defined by data and newtype: > > > > (\ (N True) -> True) ⊥ ⇒ ⊥ > > (\ (D True) -> True) ⊥ ⇒ ⊥ > > (\ ~(D True) -> True) ⊥ ⇒ True > > > > Additional examples may be found in Section 4.2.3. > > But unlike the examples in 4.2.3, which do show differences > between "newtype" and "data", the above does not seem to > show any actual difference. For that the pattern after the > constructor would I believe have to be irrefutable, which > "True" is not. I think what you're saying is that this doesn't show a difference because (\ ~(N True) -> True) ⊥ ⇒ True From ietf-dane at dukhovni.org Mon Dec 16 07:36:48 2019 From: ietf-dane at dukhovni.org (Viktor Dukhovni) Date: Mon, 16 Dec 2019 02:36:48 -0500 Subject: [Haskell-cafe] Haskell 2010 report nit? In-Reply-To: <20191216073247.jemodvmnpobmo7ko@weber> References: <20191216073247.jemodvmnpobmo7ko@weber> Message-ID: <7E08FFBB-E384-4406-BF0C-C71A085CF69F@dukhovni.org> > On Dec 16, 2019, at 2:32 AM, Tom Ellis wrote: > >>> These examples illustrate the difference in pattern matching between types defined by data and newtype: >>> >>> (\ (N True) -> True) ⊥ ⇒ ⊥ >>> (\ (D True) -> True) ⊥ ⇒ ⊥ >>> (\ ~(D True) -> True) ⊥ ⇒ True >>> >>> Additional examples may be found in Section 4.2.3. >> >> But unlike the examples in 4.2.3, which do show differences >> between "newtype" and "data", the above does not seem to >> show any actual difference. For that the pattern after the >> constructor would I believe have to be irrefutable, which >> "True" is not. > > I think what you're saying is that this doesn't show a difference because > > (\ ~(N True) -> True) ⊥ ⇒ True Yes, because of that, and also because even if it were otherwise, it is not one of the examples. :-( But indeed the expressions used in the examples behave indistinguishably for "N" and "D". So the examples don't seem to make the intended point. -- Viktor. From tom-lists-haskell-cafe-2017 at jaguarpaw.co.uk Mon Dec 16 10:09:17 2019 From: tom-lists-haskell-cafe-2017 at jaguarpaw.co.uk (Tom Ellis) Date: Mon, 16 Dec 2019 10:09:17 +0000 Subject: [Haskell-cafe] Haskell 2010 report nit? In-Reply-To: <7E08FFBB-E384-4406-BF0C-C71A085CF69F@dukhovni.org> References: <20191216073247.jemodvmnpobmo7ko@weber> <7E08FFBB-E384-4406-BF0C-C71A085CF69F@dukhovni.org> Message-ID: <20191216100917.df7ecnbagfrixiut@weber> On Mon, Dec 16, 2019 at 02:36:48AM -0500, Viktor Dukhovni wrote: > > On Dec 16, 2019, at 2:32 AM, Tom Ellis wrote: > > > >>> These examples illustrate the difference in pattern matching between types defined by data and newtype: > >>> > >>> (\ (N True) -> True) ⊥ ⇒ ⊥ > >>> (\ (D True) -> True) ⊥ ⇒ ⊥ > >>> (\ ~(D True) -> True) ⊥ ⇒ True > >>> [...] > > I think what you're saying is that this doesn't show a difference because > > > > (\ ~(N True) -> True) ⊥ ⇒ True > > Yes, because of that, and also because even if it were otherwise, it is > not one of the examples. :-( But indeed the expressions used in the > examples behave indistinguishably for "N" and "D". So the examples > don't seem to make the intended point. I agree that's very strange! From stefan.wehr at gmail.com Mon Dec 16 15:01:18 2019 From: stefan.wehr at gmail.com (Stefan Wehr) Date: Mon, 16 Dec 2019 16:01:18 +0100 Subject: [Haskell-cafe] [ANN] Call for Participation: BOB 2020 (February 28, Berlin) Message-ID: ================================================================================ BOB 2020 Conference “What happens if we simply use what’s best?” February 28, 2020, Berlin http://bobkonf.de/2020/ Program: http://bobkonf.de/2020/en/program.html Registration: http://bobkonf.de/2020/en/registration.html ================================================================================ BOB is the conference for developers, architects and decision-makers to explore technologies beyond the mainstream in software development, and to find the best tools available to software developers today. Our goal is for all participants of BOB to return home with new insights that enable them to improve their own software development experiences. The program features 14 talks and 8 tutorials on current topics: http://bobkonf.de/2020/en/program.html The subject range of talks includes functional programming, formal methods, architecture documentation, functional-reactive programming, and language design. The tutorials feature introductions to Idris, Haskell, F#, TLA+, ReasonML, and probabilistic programming. Heather Miller will give the keynote talk. Registration is open online: http://bobkonf.de/2020/en/registration.html NOTE: The early-bird rates expire on February 19, 2020! BOB cooperates with racketfest and :clojureD on the day before/after BOB: https://racketfest.com/ https://clojured.de/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From Graham.Hutton at nottingham.ac.uk Tue Dec 17 10:25:47 2019 From: Graham.Hutton at nottingham.ac.uk (Graham Hutton) Date: Tue, 17 Dec 2019 10:25:47 +0000 Subject: [Haskell-cafe] 10 PhD studentships in Nottingham Message-ID: <7519897A-A8A1-4BF0-82DA-02E9AC9B64D4@nottingham.ac.uk> Dear all, The School of Computer Science at the University of Nottingham is seeking applications for 10 fully-funded international PhD studentships: https://tinyurl.com/10-phds-2020 Applicants in the area of the Functional Programming Laboratory (https://tinyurl.com/fp-notts) are strongly encouraged! If you are interested in applying, please contact a potential supervisor as soon as possible (the application deadline is 17th January): Thorsten Altenkirch - constructive logic, proof assistants, homotopy type theory, category theory, lambda calculus. Venanzio Capretta - type theory, mathemZZatical logic, corecursive structures, proof assistants, category theory, epistemic logic. Graham Hutton - not taking on any new students this year, but you may find these notes useful: https://tinyurl.com/scbkxkr Henrik Nilsson - functional reactive programming, domain- specific languages, generalised notions of computation. These positions are only open to international applicants. An advert for UK/EU applicants will be posted in January 2020. Best wishes, Graham +-----------------------------------------------------------+ 10 Fully-Funded International PhD Studentships School of Computer Science University of Nottingham, UK https://tinyurl.com/10-phds-2020 Applications are invited for 10 fully-funded international PhD studentships in the School of Computer Science at the University of Nottingham, starting on 1st October 2020. The topics for the studentships are open, but should relate to the interests of one of the School’s research groups: Agents Lab; Computational Optimisation and Learning Lab; Computer Vision Lab; Functional Programming; Intelligent Modelling and Analysis; Mixed Reality Lab; Data Driven Algorithms, Systems and Design and Uncertainty in Data and Decision Making The studentships are for three and a half years and include a stipend of £15,009 per year and tuition fees. Applicants are normally expected to have a first-class Masters or Bachelors degree in Computer Science or a related discipline, and must obtain the support of a potential supervisor in the School prior to submitting their application. Initial contact with supervisors should be made at least two weeks prior to the closing date for applications. Successful applicants are expected to apply for an International VC Scholarship. Informal enquiries may be addressed to Kathleen.Fennemore at nottingham.ac.uk. To apply, please submit the following items by email to: Marc.Williams at nottingham.ac.uk: (1) a copy of your CV, including your actual or expected degree class(es), and results of all University examinations; (2) an example of your technical writing, such as a project report or dissertation; (3) contact details for two academic referees. (4) a research proposal – max 2 x sides A4 You may also include a covering letter but this is optional. Closing date for applications: Friday 17 January 2020. +-----------------------------------------------------------+ This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please contact the sender and delete the email and attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. Email communications with the University of Nottingham may be monitored where permitted by law. From vamchale at gmail.com Tue Dec 17 20:09:12 2019 From: vamchale at gmail.com (Vanessa McHale) Date: Tue, 17 Dec 2019 14:09:12 -0600 Subject: [Haskell-cafe] [ANNOUNCE] lzlib - lzma compression/decompression for Haskell Message-ID: <80D588A0-230E-4D0E-8C72-03508F762ED0@gmail.com> Hi all, I have written http://hackage.haskell.org/package/lzlib, a high-level interface to the lzlib library. Cheers, Vanessa McHale From komendantskaya at gmail.com Wed Dec 18 03:16:47 2019 From: komendantskaya at gmail.com (Ekaterina Komendantskaya) Date: Wed, 18 Dec 2019 03:16:47 +0000 Subject: [Haskell-cafe] Practical Aspects of Declarative Languages (PADL 2020) Call for Participation Message-ID: PADL 2020 Final Call for Participation: Please see many exciting talks and events at PADL 2020: The 22nd Symposium on Practical Aspects of Declarative Languages https://popl20.sigplan.org/home/PADL-2020 (Early registration by 12/18) Invited Talks Nikolaj Bjørner, Microsoft Research Logical Engines for Cloud Configurations Adnan Darwiche, UCLA Symbolic Reasoning About Machine Learning Systems Invited Experience and Direction Session Invited Talks Molham Aref, Relational AI Relational Artificial Intelligence Mayur Naik, University of Pennsylvania Learning Interpretable Rules from Structured Data Grant Passmore, Imandra Inc. and Cambridge University An Introduction to the Imandra Automated Reasoning System Philip Wadler, University of Edinburgh We Are All Poor Schmucks: On the Value of Gradual Types [image: Nikolaj Bjørner][image: Adnan Darwiche][image: Molham Aref][image: Grant Passmore][image: Mayur Naik][image: Phil Wadler] Complete Program https://popl20.sigplan.org/home/PADL-2020#program This includes also presentations of 10 full papers and 4 short papers; four discussion panels: (1) Programming with Logic for the Masses, (2) Memory and Real-Time Programming in Practice, (3) Reasoning for Machine Learning at Large, and (4) Experience and Direction; and a competitive programming experience session. Registration https://regmaster4.com/2020conf/POPL20/register.php Early rate closes on December 18th -------------- next part -------------- An HTML attachment was scrubbed... URL: From mblazevic at stilo.com Wed Dec 18 13:47:37 2019 From: mblazevic at stilo.com (=?UTF-8?Q?Mario_Bla=c5=beevi=c4=87?=) Date: Wed, 18 Dec 2019 08:47:37 -0500 Subject: [Haskell-cafe] Haskell 2010 report nit? In-Reply-To: References: Message-ID: <90511d0b-8652-dc25-22c2-428e3c7e0913@stilo.com> On 2019-12-16 1:42 a.m., Viktor Dukhovni wrote: > > Not sure where to post about this, and it has likely been noted > elsewhere already, but reading through the report I see in Section > 3.17.2 I'm not sure either, but one place you could report it is at https://github.com/haskell/rfcs/issues No guarantees, but it would make the issue slightly less likely to be forgotten. > >> • Consider the following declarations: >> >> newtype N = N Bool >> data D = D !Bool >> >> These examples illustrate the difference in pattern matching between types defined by data and newtype: >> >> (\ (N True) -> True) ⊥ ⇒ ⊥ >> (\ (D True) -> True) ⊥ ⇒ ⊥ >> (\ ~(D True) -> True) ⊥ ⇒ True >> >> Additional examples may be found in Section 4.2.3. > > But unlike the examples in 4.2.3, which do show differences > between "newtype" and "data", the above does not seem to > show any actual difference. For that the pattern after the > constructor would I believe have to be irrefutable, which > "True" is not. > > Thus, e.g. the below (which duplicates 4.2.3) would do the job: > > (\ (N _) -> True) ⊥ ⇒ True > (\ (D _) -> True) ⊥ ⇒ ⊥ > > Perhaps I misunderstood something, but if not, and this has > not been noted before, it may be worth fixing in the next > revision. > From jack at jackkelly.name Fri Dec 20 03:51:07 2019 From: jack at jackkelly.name (Jack Kelly) Date: Fri, 20 Dec 2019 16:51:07 +1300 Subject: [Haskell-cafe] [ANN] Venzone, an ASCII adventure/platformer In-Reply-To: <20191208050014.GA14854@x60s.casa> References: <20191208050014.GA14854@x60s.casa> Message-ID: Dear Francesco, Congratulations on the release! I clicked through to the discourse page and really enjoyed the discussion of libraries and reflections on your project. Best, -- Jack On Sun, Dec 8, 2019 at 6:00 PM Francesco Ariis wrote: > > Hello -cafe, > I am pleased to announce the release of `venzone`, an ASCII > platform/adventure game. See it in action here: > > http://www.ariis.it/static/articles/venzone/venzone-cast.gif > > Get it (binaries or source) in the game page [1] or check Discourse [2] > for a more details on the release. Happy festivities everyone! > -F > > [1] http://www.ariis.it/static/articles/venzone/page.html > [2] https://discourse.haskell.org/t/venzone-an-ascii-adventure-platformer-written-in-haskell/1004 > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. From publicityifl at gmail.com Fri Dec 20 13:52:38 2019 From: publicityifl at gmail.com (Jurriaan Hage) Date: Fri, 20 Dec 2019 05:52:38 -0800 Subject: [Haskell-cafe] Third call for draft papers for TFPIE 2020 (Trends in Functional Programming in Education) Message-ID: Hello, Please, find below the third call for draft papers for TFPIE 2020. Please forward these to anyone you think may be interested. Apologies for any duplicates you may receive. best regards, Jurriaan Hage Chair of TFPIE 2020 ======================================================================== TFPIE 2020 Call for papers http://www.staff.science.uu.nl/~hage0101/tfpie2020/index.html February 12th 2020, Krakow, Poland (co-located with TFP 2020 and Lambda Days) *NEW* Invited Speaker We are happy to announce the invited speaker for TFPIE 2020, Thorsten Altenkirch, who also speaks at Lambda Days. At TFPIE 2020 he shall be talking about his new book, Conceptual Programming With Python. *NEW* Registration This year TFPIE takes place outside of the Lambda Days/TFP organisation, although it takes place near their location. This means you do need to register separately for TFPIE; it also means you can register for TFPIE without registering for TFP/LambdaDays, and vice versa. Registration is mandatory for at least one author of every paper that is presented at the workshop. Only papers that have been presented at TFPIE may be submitted to the post-reviewing process. Registration is 25 euro per person. TFPIE 2020 welcomes submissions describing techniques used in the classroom, tools used in and/or developed for the classroom and any creative use of functional programming (FP) to aid education in or outside Computer Science. Topics of interest include, but are not limited to: FP and beginning CS students FP and Computational Thinking FP and Artificial Intelligence FP in Robotics FP and Music Advanced FP for undergraduates FP in graduate education Engaging students in research using FP FP in Programming Languages FP in the high school curriculum FP as a stepping stone to other CS topics FP and Philosophy The pedagogy of teaching FP FP and e-learning: MOOCs, automated assessment etc. Best Lectures - more details below In addition to papers, we are requesting best lecture presentations. What's your best lecture topic in an FP related course? Do you have a fun way to present FP concepts to novices or perhaps an especially interesting presentation of a difficult topic? In either case, please consider sharing it. Best lecture topics will be selected for presentation based on a short abstract describing the lecture and its interest to TFPIE attendees. The length of the presentation should be comparable to that of a paper. On top of the lecture itself, the presentation can also provide commentary on the lecture. Submissions Potential presenters are invited to submit an extended abstract (4-6 pages) or a draft paper (up to 20 pages) in EPTCS style. The authors of accepted presentations will have their preprints and their slides made available on the workshop's website. Papers and abstracts can be submitted via easychair at the following link: https://easychair.org/conferences/?conf=tfpie2020 . After the workshop, presenters will be invited to submit (a revised version of) their article for review. The PC will select the best articles that will be published in the Electronic Proceedings in Theoretical Computer Science (EPTCS). Articles rejected for presentation and extended abstracts will not be formally reviewed by the PC. Dates Submission deadline: January 14th 2020, Anywhere on Earth. Notification: January 17th 2020 TFPIE Registration Deadline: January 20th 2020 Workshop: February 12th 2020 Submission for formal review: April 19th 2020, Anywhere on Earth. Notification of full article: June 6th 2020 Camera ready: July 1st 2020 Program Committee Olaf Chitil - University of Kent Youyou Cong - Tokyo Institute of Technology Marko van Eekelen - Open University of the Netherlands and Radboud University Nijmegen Jurriaan Hage (Chair) - Utrecht University Marco T. Morazan - Seton Hall University, USA Sharon Tuttle - Humboldt State University, USA Janis Voigtlaender - University of Duisburg-Essen Viktoria Zsok - Eotvos Lorand University Note: information on TFP is available at http://www.cse.chalmers.se/~rjmh/tfp/ -------------- next part -------------- An HTML attachment was scrubbed... URL: From nikivazou at gmail.com Sat Dec 21 12:49:48 2019 From: nikivazou at gmail.com (Niki Vazou) Date: Sat, 21 Dec 2019 13:49:48 +0100 Subject: [Haskell-cafe] PhD and Postdoc positions at IMDEA Message-ID: Dear all, IMDEA Software Institute has open PhD and Postdoc positions. The selected candidate will work on liquid relational types and the application deadline is February 1st: https://software.imdea.org/open_positions.html Feel free to contact me for more information. Best, Niki -------------- next part -------------- An HTML attachment was scrubbed... URL: From effectfully at gmail.com Sat Dec 21 17:51:48 2019 From: effectfully at gmail.com (Roman) Date: Sat, 21 Dec 2019 20:51:48 +0300 Subject: [Haskell-cafe] Records, type-changing update, type inference Message-ID: I wrote a post about the records problem, in particular about type-changing update and how to get it without sacrificing type inference: https://github.com/effectfully/sketches/tree/master/has-lens-done-right The ideas are rather raw, but look promising to me. Any comments would be appreciated. From amindfv at gmail.com Tue Dec 24 05:27:51 2019 From: amindfv at gmail.com (amindfv at gmail.com) Date: Tue, 24 Dec 2019 00:27:51 -0500 Subject: [Haskell-cafe] [ANN] ascii-holidays Message-ID: For those of you celebrating Christmas this week, I've just uploaded an early version of the ascii-holidays package to Hackage. At the moment it's a reimplementation of two ASCII art Christmas tree animations, one originally written in Bash and the other in Perl. Over time I plan to add animations for other holidays as well. You can install it with cabal install, then run it like: ascii-holidays xmas-1 I hope this adds a bit of Haskelly Christmas cheer to a few homes, and happy holidays to all! Tom From ivan.miljenovic at gmail.com Tue Dec 24 06:29:06 2019 From: ivan.miljenovic at gmail.com (Ivan Lazar Miljenovic) Date: Tue, 24 Dec 2019 14:29:06 +0800 Subject: [Haskell-cafe] [ANN] ascii-holidays In-Reply-To: References: Message-ID: I think you forgot to include the BashTree and PerlTree modules in the tarball... On mobile; please excuse any tpyos. On Tue, 24 Dec. 2019, 1:26 pm , wrote: > For those of you celebrating Christmas this week, I've just uploaded an > early version of the ascii-holidays package to Hackage. At the moment it's > a reimplementation of two ASCII art Christmas tree animations, one > originally written in Bash and the other in Perl. Over time I plan to add > animations for other holidays as well. > > You can install it with cabal install, then run it like: > > ascii-holidays xmas-1 > > I hope this adds a bit of Haskelly Christmas cheer to a few homes, and > happy holidays to all! > > Tom > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. -------------- next part -------------- An HTML attachment was scrubbed... URL: From amindfv at gmail.com Tue Dec 24 07:51:07 2019 From: amindfv at gmail.com (amindfv at gmail.com) Date: Tue, 24 Dec 2019 02:51:07 -0500 Subject: [Haskell-cafe] [ANN] ascii-holidays In-Reply-To: References: Message-ID: <10A4343B-1088-40A1-93F6-B4080BF387BE@gmail.com> Whoops, thanks! Now fixed. > El 24 dic 2019, a las 01:29, Ivan Lazar Miljenovic escribió: > > I think you forgot to include the BashTree and PerlTree modules in the tarball... > > > On mobile; please excuse any tpyos. > > On Tue, 24 Dec. 2019, 1:26 pm , wrote: >> For those of you celebrating Christmas this week, I've just uploaded an early version of the ascii-holidays package to Hackage. At the moment it's a reimplementation of two ASCII art Christmas tree animations, one originally written in Bash and the other in Perl. Over time I plan to add animations for other holidays as well. >> >> You can install it with cabal install, then run it like: >> >> ascii-holidays xmas-1 >> >> I hope this adds a bit of Haskelly Christmas cheer to a few homes, and happy holidays to all! >> >> Tom >> _______________________________________________ >> Haskell-Cafe mailing list >> To (un)subscribe, modify options or view archives go to: >> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe >> Only members subscribed via the mailman list are allowed to post. -------------- next part -------------- An HTML attachment was scrubbed... URL: From fa-ml at ariis.it Tue Dec 24 10:04:31 2019 From: fa-ml at ariis.it (Francesco Ariis) Date: Tue, 24 Dec 2019 11:04:31 +0100 Subject: [Haskell-cafe] [ANN] ascii-holidays In-Reply-To: References: Message-ID: <20191224100431.GA27696@x60s.casa> On Tue, Dec 24, 2019 at 12:27:51AM -0500, amindfv at gmail.com wrote: > For those of you celebrating Christmas this week, I've just uploaded an > early version of the ascii-holidays package to Hackage. At the moment > it's a reimplementation of two ASCII art Christmas tree animations, one > originally written in Bash and the other in Perl. Functional & Festive, well done! From tikhon at jelv.is Wed Dec 25 00:21:00 2019 From: tikhon at jelv.is (Tikhon Jelvis) Date: Tue, 24 Dec 2019 16:21:00 -0800 Subject: [Haskell-cafe] Supporting Haskell.org Message-ID: A significant part of the Haskell community infrastructure—including the haskell.org website, Hackage, Hoogle and the build infrastructure for GHC—runs on donations from the Haskell community administered by Haskell.org. Haskell.org also organizes Haskell's participation in the Google Summer of Code program. We had 18 projects this year, 15 of which were completed successfully, a solid completion ratio. If you would like to support Haskell.org, you can donate via several methods including PayPal and check: https://wiki.haskell.org/Donate_to_Haskell.org Haskell.org can also accept donations through employers via Benevity using the unique ID 475236502. Haskell.org is a 501(c)(3) non-profit, so donations may be tax-deductible in your jurisdiction. We look forward to continuing this work with your support in 2020 as well as exploring new projects to improve the Haskell community infrastructure. Best wishes, Tikhon Jelvis on behalf of the haskell.org committee. -------------- next part -------------- An HTML attachment was scrubbed... URL: From ruben.astud at gmail.com Wed Dec 25 04:27:13 2019 From: ruben.astud at gmail.com (Ruben Astudillo) Date: Wed, 25 Dec 2019 01:27:13 -0300 Subject: [Haskell-cafe] Which is easier to ship on windows, a gi-gtk or fltk-hs project? Message-ID: <02dac6db-21f5-9f3e-9307-bdd1964523ba@gmail.com> Dear list Currently for work I am doing a technical document generator using HaTex. The user primarily uses windows so I would like to ship to it. He is not a technical user, so a GUI is a must. FLTK is lighter than gtk but it seems the community has less experience shipping haskell GUIs with it on windows than with gi-gtk. So which toolkit binding would you use for a windows project? Also how would you ship such a project, which depends on a toolkit and TeX-engine on windows? I am used to a nix world-view. -- -- Rubén -- pgp: 4EE9 28F7 932E F4AD -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 488 bytes Desc: OpenPGP digital signature URL: From ruben.astud at gmail.com Wed Dec 25 05:43:56 2019 From: ruben.astud at gmail.com (Ruben Astudillo) Date: Wed, 25 Dec 2019 02:43:56 -0300 Subject: [Haskell-cafe] Which is easier to ship on windows, a gi-gtk or fltk-hs project? In-Reply-To: References: <02dac6db-21f5-9f3e-9307-bdd1964523ba@gmail.com> Message-ID: On 25-12-19 02:13, Patrick Chilton wrote: > Hi, maybe you could host it somewhere and give it a web interface? > Google Compute Engine has a pretty generous free tier and you can > install Nix on it, which would take care of the packaging issues. I would prefer to not. Conceptually that is a harder sell as there is not a good technical reason to depend on webstuff apart of inconvenience. Also TeX compilation should be done on a web service if it's on the web (I think). This is a side project, which for me it's a opportunity to learn something new. That is right now shipping programs to windows that use bindings and depend on other programs. -- -- Rubén -- pgp: 4EE9 28F7 932E F4AD -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 488 bytes Desc: OpenPGP digital signature URL: From paston.cooper at gmail.com Sat Dec 28 10:22:23 2019 From: paston.cooper at gmail.com (Justin Paston-Cooper) Date: Sat, 28 Dec 2019 11:22:23 +0100 Subject: [Haskell-cafe] A Generic Ordering over Types Message-ID: Hello, I've defined a module which defines a Data.Type.Ordering over types which are instances of Generic: https://github.com/jpcooper/generic-type-ordering/blob/master/src/Data/Type/Ordering.hs. I was considering submitting it to Hackage if anyone finds this useful. I am using it in conjunction with Data.Type.Set (type-level-sets), which requires an ordering over the used types. The ordering works by first comparing the package, then the module, then the type name. I take it that the ordering as defined is correct over all types which are an instance of Generic. I wanted to check first whether this is done anywhere else, or in a different, better way. Can anyone advise? Cheers, Justin From mgsloan at gmail.com Sat Dec 28 22:28:28 2019 From: mgsloan at gmail.com (Michael Sloan) Date: Sat, 28 Dec 2019 15:28:28 -0700 Subject: [Haskell-cafe] A Generic Ordering over Types In-Reply-To: References: Message-ID: Cool approach! cmptype does something similar, but requires a ghc plugin: https://github.com/isovector/type-sets/tree/master/cmptype I suppose one advantage of cmptype is that it can work with types that cannot derive Generic, such as GADTs. -Michael On Sat, Dec 28, 2019 at 3:23 AM Justin Paston-Cooper < paston.cooper at gmail.com> wrote: > Hello, > > I've defined a module which defines a Data.Type.Ordering over types > which are instances of Generic: > > https://github.com/jpcooper/generic-type-ordering/blob/master/src/Data/Type/Ordering.hs > . > I was considering submitting it to Hackage if anyone finds this > useful. > > I am using it in conjunction with Data.Type.Set (type-level-sets), > which requires an ordering over the used types. > > The ordering works by first comparing the package, then the module, > then the type name. I take it that the ordering as defined is correct > over all types which are an instance of Generic. > > I wanted to check first whether this is done anywhere else, or in a > different, better way. Can anyone advise? > > Cheers, > > Justin > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. -------------- next part -------------- An HTML attachment was scrubbed... URL: From david.feuer at gmail.com Sat Dec 28 22:37:22 2019 From: david.feuer at gmail.com (David Feuer) Date: Sat, 28 Dec 2019 17:37:22 -0500 Subject: [Haskell-cafe] A Generic Ordering over Types In-Reply-To: References: Message-ID: Very nifty! Could you/should you add function types? Those are never Generic, so you could check for them first. On Sat, Dec 28, 2019, 5:22 AM Justin Paston-Cooper wrote: > Hello, > > I've defined a module which defines a Data.Type.Ordering over types > which are instances of Generic: > > https://github.com/jpcooper/generic-type-ordering/blob/master/src/Data/Type/Ordering.hs > . > I was considering submitting it to Hackage if anyone finds this > useful. > > I am using it in conjunction with Data.Type.Set (type-level-sets), > which requires an ordering over the used types. > > The ordering works by first comparing the package, then the module, > then the type name. I take it that the ordering as defined is correct > over all types which are an instance of Generic. > > I wanted to check first whether this is done anywhere else, or in a > different, better way. Can anyone advise? > > Cheers, > > Justin > _______________________________________________ > Haskell-Cafe mailing list > To (un)subscribe, modify options or view archives go to: > http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > Only members subscribed via the mailman list are allowed to post. -------------- next part -------------- An HTML attachment was scrubbed... URL: From paston.cooper at gmail.com Sun Dec 29 07:48:37 2019 From: paston.cooper at gmail.com (Justin Paston-Cooper) Date: Sun, 29 Dec 2019 08:48:37 +0100 Subject: [Haskell-cafe] A Generic Ordering over Types In-Reply-To: References: Message-ID: My idea was to support Generic types only. On Sat, 28 Dec 2019 at 23:37, David Feuer wrote: > > Very nifty! Could you/should you add function types? Those are never Generic, so you could check for them first. > > On Sat, Dec 28, 2019, 5:22 AM Justin Paston-Cooper wrote: >> >> Hello, >> >> I've defined a module which defines a Data.Type.Ordering over types >> which are instances of Generic: >> https://github.com/jpcooper/generic-type-ordering/blob/master/src/Data/Type/Ordering.hs. >> I was considering submitting it to Hackage if anyone finds this >> useful. >> >> I am using it in conjunction with Data.Type.Set (type-level-sets), >> which requires an ordering over the used types. >> >> The ordering works by first comparing the package, then the module, >> then the type name. I take it that the ordering as defined is correct >> over all types which are an instance of Generic. >> >> I wanted to check first whether this is done anywhere else, or in a >> different, better way. Can anyone advise? >> >> Cheers, >> >> Justin >> _______________________________________________ >> Haskell-Cafe mailing list >> To (un)subscribe, modify options or view archives go to: >> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe >> Only members subscribed via the mailman list are allowed to post. From paston.cooper at gmail.com Sun Dec 29 07:51:16 2019 From: paston.cooper at gmail.com (Justin Paston-Cooper) Date: Sun, 29 Dec 2019 08:51:16 +0100 Subject: [Haskell-cafe] A Generic Ordering over Types In-Reply-To: References: Message-ID: Looks like cmptype wins on genericity. Out of interest, is there any alternative these days to writing the tuple instances of CmpType explicitly? On Sat, 28 Dec 2019 at 23:29, Michael Sloan wrote: > > Cool approach! > > cmptype does something similar, but requires a ghc plugin: https://github.com/isovector/type-sets/tree/master/cmptype > > I suppose one advantage of cmptype is that it can work with types that cannot derive Generic, such as GADTs. > > -Michael > > On Sat, Dec 28, 2019 at 3:23 AM Justin Paston-Cooper wrote: >> >> Hello, >> >> I've defined a module which defines a Data.Type.Ordering over types >> which are instances of Generic: >> https://github.com/jpcooper/generic-type-ordering/blob/master/src/Data/Type/Ordering.hs. >> I was considering submitting it to Hackage if anyone finds this >> useful. >> >> I am using it in conjunction with Data.Type.Set (type-level-sets), >> which requires an ordering over the used types. >> >> The ordering works by first comparing the package, then the module, >> then the type name. I take it that the ordering as defined is correct >> over all types which are an instance of Generic. >> >> I wanted to check first whether this is done anywhere else, or in a >> different, better way. Can anyone advise? >> >> Cheers, >> >> Justin >> _______________________________________________ >> Haskell-Cafe mailing list >> To (un)subscribe, modify options or view archives go to: >> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe >> Only members subscribed via the mailman list are allowed to post. From mgsloan at gmail.com Sun Dec 29 08:44:17 2019 From: mgsloan at gmail.com (Michael Sloan) Date: Sun, 29 Dec 2019 01:44:17 -0700 Subject: [Haskell-cafe] A Generic Ordering over Types In-Reply-To: References: Message-ID: I'm not sure why cmptype lists the tuple instances explicitly, since the plugin also handles tuple types. I can delete those cases and it still passes the tests. -Michael On Sun, Dec 29, 2019 at 12:51 AM Justin Paston-Cooper < paston.cooper at gmail.com> wrote: > Looks like cmptype wins on genericity. Out of interest, is there any > alternative these days to writing the tuple instances of CmpType > explicitly? > > On Sat, 28 Dec 2019 at 23:29, Michael Sloan wrote: > > > > Cool approach! > > > > cmptype does something similar, but requires a ghc plugin: > https://github.com/isovector/type-sets/tree/master/cmptype > > > > I suppose one advantage of cmptype is that it can work with types that > cannot derive Generic, such as GADTs. > > > > -Michael > > > > On Sat, Dec 28, 2019 at 3:23 AM Justin Paston-Cooper < > paston.cooper at gmail.com> wrote: > >> > >> Hello, > >> > >> I've defined a module which defines a Data.Type.Ordering over types > >> which are instances of Generic: > >> > https://github.com/jpcooper/generic-type-ordering/blob/master/src/Data/Type/Ordering.hs > . > >> I was considering submitting it to Hackage if anyone finds this > >> useful. > >> > >> I am using it in conjunction with Data.Type.Set (type-level-sets), > >> which requires an ordering over the used types. > >> > >> The ordering works by first comparing the package, then the module, > >> then the type name. I take it that the ordering as defined is correct > >> over all types which are an instance of Generic. > >> > >> I wanted to check first whether this is done anywhere else, or in a > >> different, better way. Can anyone advise? > >> > >> Cheers, > >> > >> Justin > >> _______________________________________________ > >> Haskell-Cafe mailing list > >> To (un)subscribe, modify options or view archives go to: > >> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe > >> Only members subscribed via the mailman list are allowed to post. > -------------- next part -------------- An HTML attachment was scrubbed... URL: From S.J.Thompson at kent.ac.uk Tue Dec 31 14:52:46 2019 From: S.J.Thompson at kent.ac.uk (Simon Thompson) Date: Tue, 31 Dec 2019 15:52:46 +0100 Subject: [Haskell-cafe] SBLP 2020 - first call for papers Message-ID: Call for Papers - XXIV Brazilian Symposium on Programming Languages (SBLP 2020) Natal, Brazil, September 21-25, 2020 Submission link: https://easychair.org/conferences/?conf=sblp2020 SBLP 2020 is the 24th edition of the Brazilian Symposium on Programming Languages. It is promoted by the Brazilian Computer Society (SBC) and constitutes a forum for researchers, students and professionals to present and discuss ideas and innovations in the design, definition, analysis, implementation and practical use of programming languages. SBLP's first edition was in 1996. Since 2010, it is part of CBSoft, the Brazilian Conference on Software: Theory and Practice. Submission Guidelines ________________________________________________________________________________ Papers can be written in Portuguese or English. Submissions in English are encouraged because the proceedings will be indexed in the ACM Digital Library. The acceptance of a paper implies that at least one of its authors will register for the symposium to present it. Papers must be original and not simultaneously submitted to another journal or conference. SBLP 2020 will use a lightweight double-blind review process. The manuscripts should be submitted for review anonymously (i.e., without listing the author’s names on the paper) and references to own work should be made in third person. Papers must be submitted electronically (in PDF format) via the Easychair System: http://www.easychair.org/conferences/?conf=sblp2020 The following paper categories are welcome (page limits include figures, references and appendices): Full papers: up to 8 pages long in ACM 2-column conference format, available at http://www.acm.org/publications/proceedings-template Short papers: up to 3 pages in the same format. Short papers can discuss new ideas which are at an early stage of development or can report partial results of on-going dissertations or theses. List of Topics (related but not limited to the following) ________________________________________________________________________________ • Programming paradigms and styles, scripting and domain-specific languages and support for real-time, service-oriented, multi-threaded, parallel, and distributed programming • Program generation and transformation • Formal semantics and theoretical foundations: denotational, operational, algebraic and categorical • Program analysis and verification, type systems, static analysis and abstract interpretation • Programming language design and implementation, programming language environments, compilation and interpretation techniques Publication ________________________________________________________________________________ SBLP proceedings will be published in ACM's digital library. As in previous editions, authors of selected regular papers will be invited to submit an extended version of their work to be considered for publication in a journal's special issue. Since 2009, selected papers of each SBLP edition are being published in a special issue of Science of Computer Programming, by Elsevier. Important dates ________________________________________________________________________________ Abstract submission: 31 May, 2020 Paper submission: 7 June, 2020 (strict) Author notification: 24 July, 2020 Camera ready deadline: 9 August 2020 Program Committee ________________________________________________________________________________ Alex Garcia Instituto Militar de Engenharia Alvaro Moreira Universidade Federal do Rio Grande do Sul Anamaria Moreira Universidade Federal do Rio de Janeiro André Murbach Maidl Pontifícia Universidade Católica do Paraná Bernhard Scholz The University of Sydney Beta Ziliani Universidad Nacional de Córdoba Christiano Braga Universidade Federal Fluminense Cristiano Vasconcellos Universidade do Estado de Santa Catarina Fernando Castor Universidade Federal de Pernambuco Fernando Pereira Universidade Federal de Minas Gerais Francisco Sant'Anna Unversidade Estadual do Rio de Janeiro Hans-Wolfgang Loidl Heriot-Watt University Henrique Rebêlo Universidade Federal de Pernambuco João Paulo Fernandes University of Coimbra Krishna Nandivada IIT Madras Laure Gonnord University of Lyon Leonardo Reis Universidade Federal de Juiz de Fora Lucilia Figueiredo Universidade Federal de Ouro Preto Marisa Bigonha Universidade Federal de Minas Gerais Martin Musicante Universidade Federal do Rio Grande do Norte Pavlos Petoumenos University of Manchester Renato Cerqueira IBM Research Roberto Ierusalimschy PUC-Rio Rodrigo Ribeiro Universidade Federal de Ouro Preto Sandro Rigo Universidade de Campinas Sérgio Medeiros Universidade Federal do Rio Grande do Norte (Chair) Simon Thompson University of Kent Tomofumi Yuki INRIA Contact ________________________________________________________________________________ All questions about submissions should be emailed to Sérgio Medeiros (sergiomedeiros at ect.ufrn.br) Simon Thompson | Professor of Logic and Computation School of Computing | University of Kent | Canterbury, CT2 7NF, UK s.j.thompson at kent.ac.uk | M +44 7986 085754 | W www.cs.kent.ac.uk/~sjt