From daniel.trstenjak at gmail.com Sat Jun 1 08:57:17 2024 From: daniel.trstenjak at gmail.com (Daniel Trstenjak) Date: Sat, 1 Jun 2024 10:57:17 +0200 Subject: [Haskell-cafe] Issue building with ghc-9.8.2 and packages unix, directory, filepath and os-string Message-ID: <746B1A60-F5A2-48D4-B6A1-132A35DAFD78@gmail.com>  > The problem is that `--allow-newer` tells cabal to ignore dependencies' upper bounds > completely. If those bounds turn out to be necessary in some cases, the solver will produce a > bad build plan. Looking at the compile error of the unix package, it looks like it gets the wrong combination of filepath and os-string packages, resulting in the missing symbols. This depends on the os-string flag, either the unix package gets the older filepath package containing these symbols or the newer one without them and additionally the os-string package now containing the symbols. This handling with the os-string flag feels wrong to me and therefore cabal can‘t resolve the right dependencies. The unix 2.8.5.0 package has an upper bound for filepath of <1.5, the one with the symbols, but unix 2.8.5.1 has the lower bound filepath >1.4.100, therefore supporting the filepath packages with and without the symbols. It seems if unix 2.8.5.1 would only support the filepath package without the symbols, by having the lower bound filepath >=1.5, then cabal could work out the right dependencies. Is there a reason why the unix 2.8.5.1 does it that way? From lemming at henning-thielemann.de Sat Jun 1 15:11:17 2024 From: lemming at henning-thielemann.de (Henning Thielemann) Date: Sat, 1 Jun 2024 17:11:17 +0200 (CEST) Subject: [Haskell-cafe] Issue building with ghc-9.8.2 and packages unix, directory, filepath and os-string In-Reply-To: <746B1A60-F5A2-48D4-B6A1-132A35DAFD78@gmail.com> References: <746B1A60-F5A2-48D4-B6A1-132A35DAFD78@gmail.com> Message-ID: <24c95f06-38e9-247e-e9de-069fa6e35edb@henning-thielemann.de> On Sat, 1 Jun 2024, Daniel Trstenjak wrote: > Looking at the compile error of the unix package, it looks like it gets > the wrong combination of filepath and os-string packages, resulting in > the missing symbols. This depends on the os-string flag, either the unix > package gets the older filepath package containing these symbols or the > newer one without them and additionally the os-string package now > containing the symbols. > > This handling with the os-string flag feels wrong to me and therefore > cabal can‘t resolve the right dependencies. It would work, but --allow-newer ignores upper version bounds and thus can choose old filepath with new os-string. From allbery.b at gmail.com Sat Jun 1 15:26:25 2024 From: allbery.b at gmail.com (Brandon Allbery) Date: Sat, 1 Jun 2024 11:26:25 -0400 Subject: [Haskell-cafe] Issue building with ghc-9.8.2 and packages unix, directory, filepath and os-string In-Reply-To: <24c95f06-38e9-247e-e9de-069fa6e35edb@henning-thielemann.de> References: <746B1A60-F5A2-48D4-B6A1-132A35DAFD78@gmail.com> <24c95f06-38e9-247e-e9de-069fa6e35edb@henning-thielemann.de> Message-ID: Right, the point here is that `allow-newer` _breaks the solver_ and in particular breaks packages that require it to obey upper bounds (like `unix`) to produce a valid build plan. Using it blindly is therefore a very bad idea. On Sat, Jun 1, 2024 at 11:11 AM Henning Thielemann < lemming at henning-thielemann.de> wrote: > > On Sat, 1 Jun 2024, Daniel Trstenjak wrote: > > > Looking at the compile error of the unix package, it looks like it gets > > the wrong combination of filepath and os-string packages, resulting in > > the missing symbols. This depends on the os-string flag, either the unix > > package gets the older filepath package containing these symbols or the > > newer one without them and additionally the os-string package now > > containing the symbols. > > > > This handling with the os-string flag feels wrong to me and therefore > > cabal can‘t resolve the right dependencies. > > It would work, but --allow-newer ignores upper version bounds and thus can > choose old filepath with new os-string. -- brandon s allbery kf8nh allbery.b at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From will.yager at gmail.com Sat Jun 1 17:24:29 2024 From: will.yager at gmail.com (William Yager) Date: Sat, 1 Jun 2024 13:24:29 -0400 Subject: [Haskell-cafe] Exhaustive pattern match warning and GADTs Message-ID: Hello cafe, I'm writing a bit of code with state machines that are only allowed to make certain types of transitions between certain classes of states (e.g. "ready" and "unready"). The state types have some type parameters describing which class of state it's currently in. The step functions look vaguely like `step :: state a -> input b -> state c`, with various constraints on `a`, `b`, and `c`. When `state` and `input` are GADTs, you can enforce interesting invariants about the output state, given the input state and event. This all seems to work fine, and seems to be getting me in the direction I want to go. However, I'm running into a roadblock (possibly a bug?). Take the following minimal example: {-# LANGUAGE DataKinds, GADTs #-} module Lib () where data State2 s a where State2T :: s True -> State2 s True State2F :: s False -> State2 s False data OnlyTrue s where TrueState :: OnlyTrue True example :: State2 OnlyTrue s -> () example (State2T TrueState) = () -- Comment this and get non-exhaustive pattern warning -- Uncomment this and get "Inaccessible code" warning -- example (State2F TrueState) = () There is only one possible pattern on the LHS of the equation. If I don't put the (impossible) pattern, GHC gives me a warning about missing a pattern. If I do put the impossible pattern, GHC warns me that the pattern is impossible. Indeed! So why is GHC complaining about it in the first place? I'm using GHC 9.6.5. Around 7-8 years ago, I wrote some similar code, using typeclasses to constraint GADTs, and I remember being very impressed that the completeness checker was smart enough to figure out not to complain about impossible patterns (cf the paper "GADTs meet their match"). This seems like a simpler use case than what I recall doing in the past, but the completeness checker is giving me bad warnings here. Any ideas what might be going wrong? Thanks, Will -------------- next part -------------- An HTML attachment was scrubbed... URL: From byorgey at gmail.com Sat Jun 1 18:11:44 2024 From: byorgey at gmail.com (Brent Yorgey) Date: Sat, 1 Jun 2024 13:11:44 -0500 Subject: [Haskell-cafe] Exhaustive pattern match warning and GADTs In-Reply-To: References: Message-ID: Hi Will, Sure, State2F TrueState is impossible, but there is actually another possible pattern on the LHS of the equation, namely, (State2F _) (this is exactly what the warning says). The reason this is a possible pattern is that it would match on (State2F undefined). One way around this is to add strictness annotations in the definition of State2: data State2 s a where State2T :: !(s True) -> State2 s True State2F :: !(s False) -> State2 s False Now (State2F undefined) is no longer a valid inhabitant of State2 OnlyTrue s, and the warning goes away. -Brent On Sat, Jun 1, 2024 at 12:25 PM William Yager wrote: > Hello cafe, > > I'm writing a bit of code with state machines that are only allowed to > make certain types of transitions between certain classes of states (e.g. > "ready" and "unready"). The state types have some type parameters > describing which class of state it's currently in. The step functions look > vaguely like `step :: state a -> input b -> state c`, with various > constraints on `a`, `b`, and `c`. When `state` and `input` are GADTs, you > can enforce interesting invariants about the output state, given the input > state and event. > > This all seems to work fine, and seems to be getting me in the direction I > want to go. However, I'm running into a roadblock (possibly a bug?). Take > the following minimal example: > > {-# LANGUAGE DataKinds, GADTs #-} > module Lib () where > > data State2 s a where > State2T :: s True -> State2 s True > State2F :: s False -> State2 s False > > data OnlyTrue s where > TrueState :: OnlyTrue True > > example :: State2 OnlyTrue s -> () > example (State2T TrueState) = () > -- Comment this and get non-exhaustive pattern warning > -- Uncomment this and get "Inaccessible code" warning > -- example (State2F TrueState) = () > > There is only one possible pattern on the LHS of the equation. If I don't > put the (impossible) pattern, GHC gives me a warning about missing a > pattern. If I do put the impossible pattern, GHC warns me that the pattern > is impossible. Indeed! So why is GHC complaining about it in the first > place? > > I'm using GHC 9.6.5. > > Around 7-8 years ago, I wrote some similar code, using typeclasses to > constraint GADTs, and I remember being very impressed that the completeness > checker was smart enough to figure out not to complain about impossible > patterns (cf the paper "GADTs meet their match"). This seems like a simpler > use case than what I recall doing in the past, but the completeness checker > is giving me bad warnings here. > > Any ideas what might be going wrong? > > Thanks, > Will > _______________________________________________ > 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 will.yager at gmail.com Sat Jun 1 18:30:54 2024 From: will.yager at gmail.com (William Yager) Date: Sat, 1 Jun 2024 14:30:54 -0400 Subject: [Haskell-cafe] Exhaustive pattern match warning and GADTs In-Reply-To: References: Message-ID: Brilliant, thank you Brent! Now that you've given me the solution, I think I recall that I had a top-level STRICT pragma on my old project, which would explain why I didn't run into this confusion. Will On Sat, Jun 1, 2024 at 2:11 PM Brent Yorgey wrote: > Hi Will, > > Sure, State2F TrueState is impossible, but there is actually another > possible pattern on the LHS of the equation, namely, (State2F _) (this is > exactly what the warning says). The reason this is a possible pattern is > that it would match on (State2F undefined). > > One way around this is to add strictness annotations in the definition of > State2: > > data State2 s a where > State2T :: !(s True) -> State2 s True > State2F :: !(s False) -> State2 s False > > Now (State2F undefined) is no longer a valid inhabitant of State2 > OnlyTrue s, and the warning goes away. > > -Brent > > On Sat, Jun 1, 2024 at 12:25 PM William Yager > wrote: > >> Hello cafe, >> >> I'm writing a bit of code with state machines that are only allowed to >> make certain types of transitions between certain classes of states (e.g. >> "ready" and "unready"). The state types have some type parameters >> describing which class of state it's currently in. The step functions look >> vaguely like `step :: state a -> input b -> state c`, with various >> constraints on `a`, `b`, and `c`. When `state` and `input` are GADTs, you >> can enforce interesting invariants about the output state, given the input >> state and event. >> >> This all seems to work fine, and seems to be getting me in the direction >> I want to go. However, I'm running into a roadblock (possibly a bug?). Take >> the following minimal example: >> >> {-# LANGUAGE DataKinds, GADTs #-} >> module Lib () where >> >> data State2 s a where >> State2T :: s True -> State2 s True >> State2F :: s False -> State2 s False >> >> data OnlyTrue s where >> TrueState :: OnlyTrue True >> >> example :: State2 OnlyTrue s -> () >> example (State2T TrueState) = () >> -- Comment this and get non-exhaustive pattern warning >> -- Uncomment this and get "Inaccessible code" warning >> -- example (State2F TrueState) = () >> >> There is only one possible pattern on the LHS of the equation. If I don't >> put the (impossible) pattern, GHC gives me a warning about missing a >> pattern. If I do put the impossible pattern, GHC warns me that the pattern >> is impossible. Indeed! So why is GHC complaining about it in the first >> place? >> >> I'm using GHC 9.6.5. >> >> Around 7-8 years ago, I wrote some similar code, using typeclasses to >> constraint GADTs, and I remember being very impressed that the completeness >> checker was smart enough to figure out not to complain about impossible >> patterns (cf the paper "GADTs meet their match"). This seems like a simpler >> use case than what I recall doing in the past, but the completeness checker >> is giving me bad warnings here. >> >> Any ideas what might be going wrong? >> >> Thanks, >> Will >> _______________________________________________ >> 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 sperber at deinprogramm.de Tue Jun 4 10:18:24 2024 From: sperber at deinprogramm.de (Michael Sperber) Date: Tue, 04 Jun 2024 12:18:24 +0200 Subject: [Haskell-cafe] Deadline extension: ACM Workshop on Functional Software Architecture [NOW JUNE 12] In-Reply-To: (Michael Sperber's message of "Wed, 24 Apr 2024 17:24:36 +0200") References: Message-ID: The deadline for FUNARCH 2024 has been extended to June 12. If you have any material on what makes functional programming in the large work, please consider writing it up and submitting it! ====================================================================== *** FUNARCH 2024 -- CALL FOR PAPERS *** Second ACM SIGPLAN Workshop on Functional Software Architecture - FP in the Large 6th September 2024, Milan, Italy Co-located with ICFP 2024 https://functional-architecture.org/events/funarch-2024/ ====================================================================== TIMELINE: Paper submission 12th June 2024 (EXTENDED FROM JUNE 3rd) Author notification 30th June 2024 Camera ready copy 18th July 2024 Workshop 6th Sept 2024 BACKGROUND: "Functional Software Architecture" refers to methods of construction and structure of large and long-lived software projects that are implemented in functional languages and released to real users, typically in industry. The goals for the workshop are: - To assemble a community interested in software architecture techniques and technologies specific to functional programming; - To identify, categorize, and document topics relevant to the field of functional software architecture; - To connect the functional programming community to the software architecture community to cross-pollinate between the two. The workshop follows on from the Functional Software Architecture open space that was held at ICFP 2022 in Slovenia. SCOPE: The workshop seeks submissions in a range of categories: - You're a member of the FP community and have thought about how to support programming in the large, for example by framing functional ideas in architectural terms or vice verse, comparing different languages in terms of their architectural capabilities, clarifying architectural roles played by formal methods, proof assistants and DSLs, or observing how functional concepts are used in other language and architecture communities. Great, submit a research paper! - You're a member of the architecture community, and have thought about how your discipline might help functional programmers, for example by applying domain-driven design, implementing hexagonal architecture, or designing self-contained systems. Excellent, submit a research paper! - You've worked on a large project using functional programming, and it's worked out well, or terribly, or a mix of both; bonus points for deriving architectural principles from your experience. Wonderful, submit an experience report! - You know a neat architectural idiom or pattern that may be useful to others developing large functional software systems. Fabulous, submit an architectural pearl! - You have something that doesn't fit the above categories, but that still relates to functional software architecture, such as something that can be written up, or that could be part of the workshop format like a panel debate or a fishbowl. Superb, submit to the open category! Research papers should explain their research contributions in both general and technical terms, identifying what has been accomplished, explaining why it is significant, and relating it to previous work, and to other languages where appropriate. Experience reports and architectural pearls need not necessarily report original research results. The key criterion for such papers is that they make a contribution from which others can benefit. It is not enough simply to describe a large software system, or to present ideas that are specific to a particular system. Open category submissions that are not intended for publication are not required to follow the formatting guidelines, and can submit in PDF, word or plain text format as preferred. Not knowing what kinds of submissions we will receive, we cannot be specific as to how they will be evaluated. However, submissions that seem likely to stimulate discussion around practices in functional architecture are encouraged. If you are unsure whether your contribution is suitable, or if you need any kind of help with your submission, please email the program chairs at . Papers must be submitted by 3rd June 2024 using the EasyChair submission page: https://easychair.org/my/conference?conf=funarch2024 Formatting: submissions intended for publication must be in PDF format and follow the ACM SIGPLAN style guidelines, using the acmart format and the sigplan sub-format. Please use the review option when submitting, as this enables line numbers for easy reference in reviews. For further details, see SIGPLAN's author information: http://www.sigplan.org/Resources/Author/#acmart-format If your submission is not a research paper, please mark this using a subtitle (Experience Report, Architectural Pearl, Open Category). Length: submissions must adhere to the limits specified below. However, there is no requirement or expectation that all pages are used, and authors are encouraged to strive for brevity. Research papers 5 to 12+ pages Architectural pearls 5 to 12 pages Experience reports 3 to 6 pages Open category 1 to 6 pages Publication: The proceedings of FUNARCH 2024 will be published in the ACM Digital Library, and authors of accepted papers are required to agree to one of the standard ACM licensing options. Accepted papers must be presented at the workshop by one of the authors, but in special cases we may consider remote presentation. The official publication date is the date the papers are made available in the ACM Digital Library. This date may be up to two weeks prior to the first day of the conference. The official publication date affects the deadline for any patent filings related to published work. PROGRAM CHAIRS: Mike Sperber (Active Group, Germany) Perdita Stevens (University of Edinburgh, UK) PROGRAM COMMITTEE: Annette Bieniusa (University of Kaiserslautern) Jeffrey Young (IOG) Will Crichton (Brown University) Isabella Stilkerich (Schaeffler Technologies AG) Kiko Fernandez-Reyes (Ericsson) Ryan Scott (Galois) Satnam Singh (Groq) Facundo Dominguez (Tweag) Ilya Sergey (University of Singapore) Martin Elsman (University of Copenhagen) Benjamin Pierce (University of Pennsylvania) Matthew Flatt (University of Utah) Nada Amin (Harvard University) Richard Eisenberg (Jane Street) WORKSHOP VENUE: The workshop will be co-located with the ICFP 2024 conference at the Fiera Milano Congressi, Milan, Italy. From ufarooq at lsu.edu Fri Jun 7 14:38:21 2024 From: ufarooq at lsu.edu (Umar Farooq) Date: Fri, 7 Jun 2024 14:38:21 +0000 Subject: [Haskell-cafe] Call for Papers: SPLASH 2024 Student Research Competition Message-ID: ======================================================================== SPLASH 2024 Student Research Competition Call for Papers Student Research Competition will be held as part of The ACM Conference on Systems, Programming, Languages, and Applications: Software for Humanity (SPLASH'24) October 20-25, 2024, Pasadena, California, United States https://2024.splashcon.org/track/splash-2024-SRC ======================================================================== ### Important dates Submission Deadline: Mon Jul 8, 2024 Author Notification: Mon Aug 19, 2024 Camera Ready: Sun Sep 1, 2024 The ACM Student Research Competition (SRC) offers a unique opportunity for undergraduate and graduate students to present their research to a panel of judges and conference attendees at SPLASH. The SRC provides visibility and exposes up-and-coming researchers to computer science research and the research community. This competition also gives students an opportunity to discuss their research with experts in their field, get feedback, and sharpen their communication and networking skills. ### Eligibility criteria Participants must have current student status, either graduate or undergraduate, at the time of the competition. Participants in the SRC must also be current ACM (student) members. ### Prizes Winners of the three top places in each category receive prizes of $500 for the first place winner, $300 for the second place winner and $200 for the third place winner, respectively. The top three undergraduate and graduate winners receive an award medal and a one-year complimentary ACM student membership with a subscription to ACM's Digital Library. ### ACM SRC Grand Finals First place winners in each category will be invited to participate in the ACM SRC Grand Finals, an online round of competition between first-place SRC winners from different ACM conferences held in 2024. Grand Finals will be judged by an ACM-appointed panel of judges. Winners of the three top Grand Finals places in each category will receive additional prizes of $500 for the first place winner, $300 for the second place winner and $200 for the third place winner, respectively. Winners of the SRC Grand Finals are recognized at the Annual ACM Awards Banquet along with prestigious ACM award winners, including the winner of the Turing Award. ##### Review Committee Review Committee Chairs: Anders Miltner, Simon Fraser University Jiasi Shen, The Hong Kong University of Science and Technology -------------- next part -------------- An HTML attachment was scrubbed... URL: From frederic-emmanuel.picca at synchrotron-soleil.fr Thu Jun 13 15:32:54 2024 From: frederic-emmanuel.picca at synchrotron-soleil.fr (PICCA Frederic-Emmanuel) Date: Thu, 13 Jun 2024 17:32:54 +0200 (CEST) Subject: [Haskell-cafe] Datakind and instance Message-ID: <955678727.55296196.1718292774043.JavaMail.zimbra@synchrotron-soleil.fr> Hello, I have a class class HasIniConfig where getConfig ... a kind using DataKind data ProjectionType = TypeA | TypeB ... I would like to create instance for each 'TypeX But when I try to write an instance I get this error src/Hkl/Binoculars/Projections/QCustom.hs:195:23: error: • Expected a type, but ‘'QCustomProjection’ has kind ‘ProjectionType’ • In the first argument of ‘HasIniConfig’, namely ‘'QCustomProjection’ In the instance declaration for ‘HasIniConfig 'QCustomProjection’ | 195 | instance HasIniConfig 'QCustomProjection where | ^^^^^^^^^^^^^^^^^^ I should add class HasIniConfig (a :: ProjectionType) where But in that cas I can not create instance for other type, and I need to :) I would be glade if someone could explain how to all this. Thanks Frederic From xnningxie at gmail.com Thu Jun 13 15:59:47 2024 From: xnningxie at gmail.com (Ningning Xie) Date: Thu, 13 Jun 2024 11:59:47 -0400 Subject: [Haskell-cafe] POPL 2025: Call for Workshops and Co-located Events Message-ID: CALL FOR WORKSHOPS AND CO-LOCATED EVENTS POPL 2025 52nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages Sun 19 - Sat 25, January 2025 Denver, Colorado, United States https://popl25.sigplan.org The 52nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 2025) will be held in Denver, Colorado, United States. POPL provides a forum for the discussion of fundamental principles and important innovations in the design, definition, analysis, transformation, implementation and verification of programming languages, programming systems, and programming abstractions. Events focusing on experimental and theoretical topics are welcome. Proposals are invited for workshops and other events to be co-located with POPL 2025. All co-located events are sponsored by SIGPLAN ( http://acm.org/sigplan/). Workshops should be more informal and focused than POPL itself, and include sessions that enable interaction among the workshop attendees. The preference is for one-day workshops, but other schedules can also be considered. --------------------------------------------------------------------- Submission details Deadline for submission: 26 July 2024 Notification of acceptance: 2 August 2024 A workshop proposal should provide the following information: * Name of the workshop. * Duration of the workshop. * Whether the workshop will be Conference-approved or SIGPLAN-approved (see below). * Organizers: names, affiliation, contact information, brief (100 words) biography. * A short description (150-200 words) of the topic. * Event format: workshop; type of submissions if any; review process; results dissemination. * Expected attendance and target audience. * Potential PC members - please do not contact them before the workshop is approved. * History of the workshop. * Plans for remote participation Proposals must be submitted in PDF form by email with the subject POPL 2025 Workshop Proposal: [workshop name], to the workshop co-chairs: Christoph Matheja (chmat at dtu.dk) and Robert Rand (rand at uchicago.edu). --------------------------------------------------------------------- SIGPLAN Sponsorship POPL co-located events are sponsored by SIGPLAN (http://sigplan.org/). There are two kinds of co-located events: Conference-approved (no proceedings) and SIGPLAN-approved (proceedings in the ACM Digital Library). See http://www.sigplan.org/Resources/Guidelines/Workshops/ for more information, including a full listing of prescriptions for Conference-approved and SIGPLAN-approved workshops. SIGPLAN-approved workshops must respect the SIGPLAN Diversity Policy. Proposals for SIGPLAN-approved workshops must additionally include the gender, country of affiliation, and professional status of potential PC members. See https://www.sigplan.org/Resources/Policies/Diversity/ for more details. --------------------------------------------------------------------- Selection committee All submissions will be evaluated by a committee comprising the workshops co-chairs, the general chair, and the program chair. --------------------------------------------------------------------- Further information Any questions regarding POPL 2025 co-located event proposals should be addressed to the workshops chairs Christoph Matheja (chmat at dtu.dk) and Robert Rand (rand at uchicago.edu). -------------- next part -------------- An HTML attachment was scrubbed... URL: From godzbanebane at gmail.com Thu Jun 13 20:06:04 2024 From: godzbanebane at gmail.com (Georgi Lyubenov) Date: Thu, 13 Jun 2024 23:06:04 +0300 Subject: [Haskell-cafe] Datakind and instance In-Reply-To: <955678727.55296196.1718292774043.JavaMail.zimbra@synchrotron-soleil.fr> References: <955678727.55296196.1718292774043.JavaMail.zimbra@synchrotron-soleil.fr> Message-ID: <605a8dbe-07b5-4ffd-aa42-3828db3c31d3@gmail.com> You can make it polykinded: {-# LANGAUGE PolyKinds #-} class HasIniConfig (a :: k) where   getConfig ... And then you can use both types of kind ProjectionType, and also "regular types" of kind Type. On 6/13/24 18:32, PICCA Frederic-Emmanuel wrote: > Hello, > > I have a class > > class HasIniConfig where > getConfig ... > > a kind using DataKind > > data ProjectionType = TypeA > | TypeB > ... > > I would like to create instance for each 'TypeX > > But when I try to write an instance > > I get this error > > src/Hkl/Binoculars/Projections/QCustom.hs:195:23: error: > • Expected a type, but > ‘'QCustomProjection’ has kind > ‘ProjectionType’ > • In the first argument of ‘HasIniConfig’, namely > ‘'QCustomProjection’ > In the instance declaration for ‘HasIniConfig 'QCustomProjection’ > | > 195 | instance HasIniConfig 'QCustomProjection where > | ^^^^^^^^^^^^^^^^^^ > > > I should add class HasIniConfig (a :: ProjectionType) where > > But in that cas I can not create instance for other type, and I need to :) > > I would be glade if someone could explain how to all this. > > Thanks > > Frederic > _______________________________________________ > 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 frederic-emmanuel.picca at synchrotron-soleil.fr Fri Jun 14 13:41:37 2024 From: frederic-emmanuel.picca at synchrotron-soleil.fr (PICCA Frederic-Emmanuel) Date: Fri, 14 Jun 2024 15:41:37 +0200 (CEST) Subject: [Haskell-cafe] Datakind and instance In-Reply-To: <605a8dbe-07b5-4ffd-aa42-3828db3c31d3@gmail.com> References: <955678727.55296196.1718292774043.JavaMail.zimbra@synchrotron-soleil.fr> <605a8dbe-07b5-4ffd-aa42-3828db3c31d3@gmail.com> Message-ID: <1923705761.56219215.1718372497027.JavaMail.zimbra@synchrotron-soleil.fr> ----- Le 13 Juin 24, à 22:06, Georgi Lyubenov godzbanebane at gmail.com a écrit : > You can make it polykinded: > > > {-# LANGAUGE PolyKinds #-} > > class HasIniConfig (a :: k) where >   getConfig ... > > And then you can use both types of kind ProjectionType, and also > "regular types" of kind Type. > Thanks a lot it works. From anton.kholomiov at gmail.com Sun Jun 16 17:00:27 2024 From: anton.kholomiov at gmail.com (Anton Kholomiov) Date: Sun, 16 Jun 2024 20:00:27 +0300 Subject: [Haskell-cafe] [ANN] csound-expression-5.4.4 - music and sound design framework Message-ID: I'd like to announce a new release of [csound-expression]( https://github.com/spell-music/csound-expression) on [hackage]( https://hackage.haskell.org/package/csound-expression). The CE is a music framework for haskell with focus on ease of use and feature rich as it rides on top of the powerful audio programming language Csound. It is a DSL to build Csound programs. So the library embeds Csound in Haskell. It's a bug fix release. Many algorithms in the low-level renderer csound-expression-dynamic were rewritten and fixed. In the previous version unfortunately there were severe bugs in effectful expressions and in if-then-else blocks. But now they are fixed. Also I've updated the library to include new Csound opcodes (audio processing units from 6.18 version). Happy music making with Haskell! About the future of the csound-expression: I've started the implementation of a more tiny csound-core package. It offers a missing layer of low-level building of type-safe Csound expressions. In the previous version I've created lots of abstractions to make music making more pleasant for FP style. But this layering makes it kind of hard to debug rendered code. So I'd like to create a tiny imperative style core that will allow me to debug produced Csound code. And the rest of the code should be expressed in terms of this library. I'm not there yet. I've built the core library and it turned out very well. But now I need to rewrite FP abstractions on top of it. I'm not there yet. But I hope that gradually I will make it. Also I plan to deprecate GUI features as FLTK was deprecated in Csound and it's not packaged with Csound anymore. I think maybe it would be better to substitute them with JS+OSC. github: https://github.com/spell-music/csound-expression hackage: https://hackage.haskell.org/package/csound-expression -------------- next part -------------- An HTML attachment was scrubbed... URL: From xnningxie at gmail.com Mon Jun 17 19:13:54 2024 From: xnningxie at gmail.com (Ningning Xie) Date: Mon, 17 Jun 2024 15:13:54 -0400 Subject: [Haskell-cafe] PLMW@ICFP'24: Final call for Participation (travel funding application by June 21) Message-ID: APPLICATION FOR PLMW TRAVEL FUNDING For full consideration for scholarship funding, please apply at the link below by June 21, AoE. We will notify accepted attendees in a rolling fashion until all funding is committed. The application can be accessed at the following URL (Apply by June 21, 2024 AOE for full consideration!): https://forms.gle/vC6udnMWRvvAczPR6 —-------------------------------------------------------------- ACM SIGPLAN Programming Languages Mentoring Workshop (PLMW) at ICFP 24, Milan, Italy Workshop: Monday, September 2, 2024 Website: https://icfp24.sigplan.org/home/PLMW-ICFP-2024 PLMW is a workshop co-located with ICFP 2024 (the International Conference on Functional Programming) in Milan, Italy, from September 2-7. The purpose of this mentoring workshop is to encourage graduate students and senior undergraduate students to pursue careers in programming language research. This workshop will bring together world leaders in programming languages research and teaching from academia and industry to help students imagine how they might contribute to our research community. Topics will range from the abstract (e.g., what is PL research and how does one become involved in it) to the concrete (e.g., how to navigate an academic conference, how to pick a research area) as well as technical talks on cutting-edge topics. We especially encourage women and underrepresented minority students, and people with disabilities to attend PLMW. This workshop is part of the activities surrounding ICFP, and takes place the day before the main conference. One goal of the workshop is to make the ICFP conference more accessible to newcomers. We hope that participants will stay through the entire conference. Note that ICFP and PLMW are planned to be largely in-person events. While we recognize that travel to conferences is not easy for everyone, we do hope you will be able to join us in person to get the most out of the conference and its community-building aspects. A number of sponsors have generously donated scholarship funds for qualified students to attend PLMW. These scholarships can cover expenses (airfare, hotel, and registration fees) for attendance at both the workshop and the ICFP conference. Students attending this year will get one year free student membership of SIGPLAN, unless they prefer to opt out during their application. The workshop registration is open to all. Students with alternative sources of funding are welcome as well. -------------- next part -------------- An HTML attachment was scrubbed... URL: From ufarooq at lsu.edu Mon Jun 24 14:59:17 2024 From: ufarooq at lsu.edu (Umar Farooq) Date: Mon, 24 Jun 2024 14:59:17 +0000 Subject: [Haskell-cafe] SPLASH'24: Call for Volunteers Message-ID: ======================================================================== Call for Volunteers The ACM Conference on Systems, Programming, Languages, and Applications: Software for Humanity (SPLASH'24) October 20-25, 2024, Pasadena, California, United States https://2024.splashcon.org/track/splash-2024-Volunteers ======================================================================== ### Important dates Volunteer applications Deadline: Tue Jul 30, 2024 Notification of Acceptance: Wed Aug 7, 2024 Apply to be a Volunteer and help us make SPLASH 2024 a great experience for all attendants! SPLASH 2024 is pleased to offer a number of opportunities for volunteers, who are vital to the efficient operation and continued success of the conference each year. The volunteer program is a chance for students and Programming Languages researchers aspirants from around the world to participate in the conferences while assisting us in preparing and running the event. The Volunteer Program helps more people attend the SPLASH conference by covering conference fees, including access to the banquet (but not travel or lodging expenses), in exchange for a fixed number of work hours (usually from 12 to 15) helping with the conference organization. ### Eligibility criteria Everyone is welcome to apply. Priority is given to junior members of our community, e.g. full- or part-time students of computer science and related fields. ### Duration Applicants must be available for at least five (5) full days between October 20th and October 25th 2024, and will be expected to provide 12-15 hours of volunteering work in that time. Volunteers may also be expected to be available for some amount of pre-conference discussion and training if necessary. Volunteers from all timezones are welcome. ### About Volunteering The skills, talents, and dedication of our Volunteers contribute to the overall quality of the conference. The Volunteer role this year will mainly involve working with the organizers to prepare for the conference by providing technical assistance to attendees, managing online Q&A and poster sessions, and supporting active communication in our online environment. Volunteering allows you to meet other people (faculty and students) in the Programming Languages (PL) Community. With several opportunities for networking, you can share ideas about your research, find topics you are passionate about, investigate career paths, and even find your future collaborators! ### Compensation - A Complimentary Conference Registration, offering access to all open sessions (i.e., parallel paper presentations, demonstrations, and workshops) and conference proceedings. - Free lunches and refreshments during breaks. - Volunteer shirt. - Free admission to all social events. -------------- next part -------------- An HTML attachment was scrubbed... URL: From jmct at haskell.foundation Mon Jun 24 20:51:47 2024 From: jmct at haskell.foundation (Jose Calderon) Date: Mon, 24 Jun 2024 16:51:47 -0400 Subject: [Haskell-cafe] [Call for Participation]: Haskell Certification Program Message-ID: Serokell and the Haskell Foundation are excited to announce a community-led Haskell Certification Program (https://certification.haskell.foundation/). Serokell has developed an online testing platform for administering practical and theoretical Haskell problems. Haskell is a complex language, offering a wide range of techniques and features for programmers. It’s simply not feasible for a novice or intermediate programmer to master them all. The goal of the Haskell certification is to help standardize what it means to ‘know Haskell’ at various levels of experience. As a community driven effort, we are soliciting self-nomination for volunteers to take part in the organization and decision-making around the certification process. These volunteers will help determine how the certification process evolves and which questions are relevant to the various experience levels of a Haskell programmer. Volunteers from organizations that use Haskell professionally are especially welcome. Please send your self-nomination to certification at haskell.foundation by the end of July 10th 2024. Best wishes, Jose Calderon -------------- next part -------------- An HTML attachment was scrubbed... URL: From noonsilk at gmail.com Tue Jun 25 06:01:18 2024 From: noonsilk at gmail.com (Noon van der Silk) Date: Tue, 25 Jun 2024 07:01:18 +0100 Subject: [Haskell-cafe] [Call for Participation]: Haskell Certification Program In-Reply-To: References: Message-ID: Congrats on launching this. It's probably worth being clear on any potential conflict of interest here with this being an seemingly "official" haskell-foundation sponsored certification and whether or not Serokell is a funder of the HF and/or has seats on the board. I would also suggest it's fairly bold to claim that this is in any way "objective" insofar as no exams are "objective", they merely test the subjective interests, experiences, and skills of the setters, and, crucially, an ability to succeed in exam conditions, which *many* people struggle with, for an extremely large variety of reasons. Your Haskell may be very different from my Haskell. -- Noon On Mon, 24 Jun 2024 at 21:52, Jose Calderon via Haskell-Cafe < haskell-cafe at haskell.org> wrote: > Serokell and the Haskell Foundation are excited to announce a > community-led Haskell Certification Program ( > https://certification.haskell.foundation/). Serokell has developed an > online testing platform for administering practical and theoretical Haskell > problems. Haskell is a complex language, offering a wide range of > techniques and features for programmers. It’s simply not feasible for a > novice or intermediate programmer to master them all. The goal of the > Haskell certification is to help standardize what it means to ‘know > Haskell’ at various levels of experience. > > As a community driven effort, we are soliciting self-nomination for > volunteers to take part in the organization and decision-making around the > certification process. These volunteers will help determine how the > certification process evolves and which questions are relevant to the > various experience levels of a Haskell programmer. Volunteers from > organizations that use Haskell professionally are especially welcome. > > Please send your self-nomination to certification at haskell.foundation by > the end of July 10th 2024. > > > Best wishes, > > Jose Calderon > _______________________________________________ > 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. -- Noon van der Silk http://silky.github.io/ "My programming language is kindness." -------------- next part -------------- An HTML attachment was scrubbed... URL: From godzbanebane at gmail.com Tue Jun 25 07:39:26 2024 From: godzbanebane at gmail.com (Georgi Lyubenov) Date: Tue, 25 Jun 2024 10:39:26 +0300 Subject: [Haskell-cafe] [Call for Participation]: Haskell Certification Program In-Reply-To: References: Message-ID: <474fade6-e682-4458-8c61-c41590097070@gmail.com> Hey all, I think the TOS are a bit outdated - https://certification.haskell.foundation/terms-of-service. They still refer to certification.serokell.io, which I would assume was once the FQDN of the website, and not https://certification.haskell.foundation/. Additionally, is it not possible for "legal ownership" (whatever that means, I'm not too knowledgeable) of this project to be transferred to the Foundation? Cheers and good luck, Georgi On 6/24/24 23:51, Jose Calderon via Haskell-Cafe wrote: > > Serokell and the Haskell Foundation are excited to announce a > community-led Haskell Certification Program > (https://certification.haskell.foundation/). Serokell has developed an > online testing platform for administering practical and theoretical > Haskell problems. Haskell is a complex language, offering a wide range > of techniques and features for programmers. It’s simply not feasible > for a novice or intermediate programmer to master them all. The goal > of the Haskell certification is to help standardize what it means to > ‘know Haskell’ at various levels of experience. > > As a community driven effort, we are soliciting self-nomination for > volunteers to take part in the organization and decision-making around > the certification process. These volunteers will help determine how > the certification process evolves and which questions are relevant to > the various experience levels of a Haskell programmer. Volunteers from > organizations that use Haskell professionally are especially welcome. > > Please send your self-nomination to certification at haskell.foundation > by the end of July 10th 2024. > > > Best wishes, > > Jose Calderon > > > _______________________________________________ > 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 jo at durchholz.org Tue Jun 25 11:03:31 2024 From: jo at durchholz.org (jo at durchholz.org) Date: Tue, 25 Jun 2024 13:03:31 +0200 Subject: [Haskell-cafe] [Call for Participation]: Haskell Certification Program In-Reply-To: References: Message-ID: <62a3babe-31bd-4b31-bcda-3fe0399875a9@durchholz.org> On 25.06.24 08:01, Noon van der Silk wrote: > I would also suggest it's fairly bold to claim that this is in any way > "objective" insofar as no exams are "objective", they merely test the > subjective interests, experiences, and skills of the setters, and, > crucially, an ability to succeed in exam conditions, which *many* people > struggle with, for an extremely large variety of reasons. Your Haskell > may be very different from my Haskell. Still, it's objective in the sense that anybody who comes with a certificate has successfully memorized the information in the course. It's also proof that the candidate had enough interest in Haskell to invest significant time for obtaining a certificate. It's a minimal foundation that employers can assume so they don't have to check that themselves, they can concentrate on other aspects, and it's a known stable foundation, minimal as it may be. Nothing of that is a full picture of a candidate's developer personality, but nothing is anyway. HTH Jo From noonsilk at gmail.com Tue Jun 25 11:25:25 2024 From: noonsilk at gmail.com (Noon van der Silk) Date: Tue, 25 Jun 2024 12:25:25 +0100 Subject: [Haskell-cafe] [Call for Participation]: Haskell Certification Program In-Reply-To: <62a3babe-31bd-4b31-bcda-3fe0399875a9@durchholz.org> References: <62a3babe-31bd-4b31-bcda-3fe0399875a9@durchholz.org> Message-ID: > It's a minimal foundation that employers can assume so they don't have > to check that themselves, they can concentrate on other aspects, and > it's a known stable foundation, minimal as it may be. But I think this is the precise problem with it being supported by the HF. I don't think it's a minimal foundation at all (almost regardless of it's content). I think we've learned by now , as a broad programming community, that there's a classical logical fallacy here - (some) "good" programmers can do well on these exams, but that *doesn't* mean you *must* complete this well in order to be a "good" programmer. There's many issues here among them that "good programmer" is only defined respect to organisational context anyway. I think it's completely fine and reasonable for a private company (Serokell) to be offering this certification, especially one such as them that has real experience in the Haskell ecosystem and plenty of people contributing; but I think what would be a very bad situation is that if the HF itself, and the broad Haskell (hiring) ecosystem got the idea that this was something all candidates should seek achieve. The fact that the HF is explicitly supporting it, is, for me, a disappointing outcome from a body that, I had hoped would try and stay (somewhat) independent. Hence asking for a clarification on any potential conflict of interest here. -- Noon On Tue, 25 Jun 2024 at 12:04, wrote: > On 25.06.24 08:01, Noon van der Silk wrote: > > I would also suggest it's fairly bold to claim that this is in any way > > "objective" insofar as no exams are "objective", they merely test the > > subjective interests, experiences, and skills of the setters, and, > > crucially, an ability to succeed in exam conditions, which *many* people > > struggle with, for an extremely large variety of reasons. Your Haskell > > may be very different from my Haskell. > > Still, it's objective in the sense that anybody who comes with a > certificate has successfully memorized the information in the course. > > It's also proof that the candidate had enough interest in Haskell to > invest significant time for obtaining a certificate. > > It's a minimal foundation that employers can assume so they don't have > to check that themselves, they can concentrate on other aspects, and > it's a known stable foundation, minimal as it may be. > > Nothing of that is a full picture of a candidate's developer > personality, but nothing is anyway. > > HTH > 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. -- Noon van der Silk http://silky.github.io/ "My programming language is kindness." -------------- next part -------------- An HTML attachment was scrubbed... URL: From jo at durchholz.org Tue Jun 25 11:55:13 2024 From: jo at durchholz.org (jo at durchholz.org) Date: Tue, 25 Jun 2024 13:55:13 +0200 Subject: [Haskell-cafe] [Call for Participation]: Haskell Certification Program In-Reply-To: References: <62a3babe-31bd-4b31-bcda-3fe0399875a9@durchholz.org> Message-ID: <801d9e9d-113a-406e-a379-42cba2398c96@durchholz.org> On 25.06.24 13:25, Noon van der Silk wrote: > > It's a minimal foundation that employers can assume so they don't have > > to check that themselves, they can concentrate on other aspects, and > > it's a known stable foundation, minimal as it may be. > > But I think this is the precise problem with it being supported by the HF. > > I don't think it's a minimal foundation at all (almost regardless of > it's content). Oh but it is. It may be useless, there may be better options, there might be other issues with it. But being able to acquire a certificate in a field IS a foundation. > I think we've learned by now > , as a broad programming community, that there's a classical logical fallacy here - (some) "good" programmers can do well on these exams, but that /doesn't/ mean you *must* complete this well in order to be a "good" programmer. There's many issues here among them that "good programmer" is only defined respect to organisational context anyway. While the linked article does have a point, it's just one way to look at hiring decisions or engineer performance, and others are just as useful and valid. So, no, not a logical fallacy. Just a different perspective. > I think it's completely fine and reasonable for a private company > (Serokell) to be offering this certification, especially one such as > them that has real experience in the Haskell ecosystem and plenty of > people contributing; but I think what would be a very bad situation is > that if the HF itself, and the broad Haskell (hiring) ecosystem got the > idea that this was something all candidates should seek achieve. Nobody is claiming that, and it would be a very unexpected outcome. In practice, a certificate gives you a modicum of street credibility if your CV does not document a background in the area. Regards, Jo P.S.: I do see your point about independence, and agree that's a potential concern. From tom-lists-haskell-cafe-2023 at jaguarpaw.co.uk Tue Jun 25 12:20:10 2024 From: tom-lists-haskell-cafe-2023 at jaguarpaw.co.uk (Tom Ellis) Date: Tue, 25 Jun 2024 13:20:10 +0100 Subject: [Haskell-cafe] [Call for Participation]: Haskell Certification Program In-Reply-To: References: Message-ID: On Tue, Jun 25, 2024 at 07:01:18AM +0100, Noon van der Silk wrote: > It's probably worth being clear on any potential conflict of interest here > with this being an seemingly "official" haskell-foundation sponsored > certification and whether or not Serokell is a funder of the HF and/or has > seats on the board. Hello Noon, The HF will hold any proceeds gained from the certification program and put them back into funding the program. Serokell does not financially benefit from this initiative. Regarding board members, you can see who they are on the HF website, and that no employee of Serokell has a board seat (nor has any ever): https://haskell.foundation/who-we-are/ Regarding donors, you can see a list of donors on the HF website front page, and that Serokell does not appear: https://haskell.foundation/ (I don't actually know if that comprises literally all the donors nor all historical donors, but as far as I am aware, Serokell is not one nor has ever been.) Tom (HF Vice Chair) From noonsilk at gmail.com Tue Jun 25 17:41:12 2024 From: noonsilk at gmail.com (Noon van der Silk) Date: Tue, 25 Jun 2024 18:41:12 +0100 Subject: [Haskell-cafe] [Call for Participation]: Haskell Certification Program In-Reply-To: References: Message-ID: Hey Tom, Thanks for clarifying the money position. > Serokell does not financially benefit from this initiative. It's probably worth making this clear in the terms of service or otherwise (as Georgi hinted at). But I would also note that clearly Serokell want their name attached to it; so they definitely do benefit implicitly from the endorsement. I do still think it's a shame that the HF is attempting to adopt this as a somehow "formal" "ability in Haskell measure"; to my simple mind this is a very large overstep for a language's foundation to make; i.e. it should be taken *very* seriously, if HF somehow represents "Haskell" officially. I.e. my only personal course of action is just to assume that it, in fact, does not represent all our interests; which, of course, you will not be surprised, to learn is my true feeling :) But myself aside, I do think some care needs to be taken; i.e. to explain clearly why the HF hasn't chosen to select this as "one among many options"; i.e. just link to it, compared to making it "the" url for certification for Haskell; and likewise writing the content to imply that. -- Noon On Tue, 25 Jun 2024 at 13:20, Tom Ellis < tom-lists-haskell-cafe-2023 at jaguarpaw.co.uk> wrote: > On Tue, Jun 25, 2024 at 07:01:18AM +0100, Noon van der Silk wrote: > > It's probably worth being clear on any potential conflict of interest > here > > with this being an seemingly "official" haskell-foundation sponsored > > certification and whether or not Serokell is a funder of the HF and/or > has > > seats on the board. > > Hello Noon, > > The HF will hold any proceeds gained from the certification program > and put them back into funding the program. Serokell does not > financially benefit from this initiative. > > Regarding board members, you can see who they are on the HF website, > and that no employee of Serokell has a board seat (nor has any ever): > > https://haskell.foundation/who-we-are/ > > Regarding donors, you can see a list of donors on the HF website front > page, and that Serokell does not appear: > > https://haskell.foundation/ > > (I don't actually know if that comprises literally all the donors nor > all historical donors, but as far as I am aware, Serokell is not one > nor has ever been.) > > Tom > (HF Vice Chair) > _______________________________________________ > 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. -- Noon van der Silk http://silky.github.io/ "My programming language is kindness." -------------- next part -------------- An HTML attachment was scrubbed... URL: From matti.johannes.nykanen at gmail.com Tue Jun 25 18:19:23 2024 From: matti.johannes.nykanen at gmail.com (=?UTF-8?Q?Matti_Nyk=C3=A4nen?=) Date: Tue, 25 Jun 2024 21:19:23 +0300 Subject: [Haskell-cafe] [Call for Participation]: Haskell Certification Program In-Reply-To: References: Message-ID: This is a somewhat related topic, but I do not know of a forum to discuss it. Hence apologies if the relation is too remote. In her book "The Programmer’s Brain" (Manning, 2021) Felienne Hermans (who knows Haskell) says, among other things, that reserved words like "while" and so on act as *cognitive anchors* which support our brains in learning programming languages by giving a familiar foothold in the early steps. Haskell has none of that: not even a strict division of syntactic structures for representing control vs. data - because it does not have it in its semantics either. What (if anything) does that portend to learning Haskell? To teaching it? To assessing the learner's progress? (And why didn't I think of these things when I was still teaching it myself?) ma 24. kesäk. 2024 klo 23.52 Jose Calderon via Haskell-Cafe < haskell-cafe at haskell.org> kirjoitti: > Serokell and the Haskell Foundation are excited to announce a > community-led Haskell Certification Program ( > https://certification.haskell.foundation/). Serokell has developed an > online testing platform for administering practical and theoretical Haskell > problems. Haskell is a complex language, offering a wide range of > techniques and features for programmers. It’s simply not feasible for a > novice or intermediate programmer to master them all. The goal of the > Haskell certification is to help standardize what it means to ‘know > Haskell’ at various levels of experience. > > As a community driven effort, we are soliciting self-nomination for > volunteers to take part in the organization and decision-making around the > certification process. These volunteers will help determine how the > certification process evolves and which questions are relevant to the > various experience levels of a Haskell programmer. Volunteers from > organizations that use Haskell professionally are especially welcome. > > Please send your self-nomination to certification at haskell.foundation by > the end of July 10th 2024. > > > Best wishes, > > Jose Calderon > _______________________________________________ > 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 Jun 25 18:30:42 2024 From: allbery.b at gmail.com (Brandon Allbery) Date: Tue, 25 Jun 2024 14:30:42 -0400 Subject: [Haskell-cafe] [Call for Participation]: Haskell Certification Program In-Reply-To: References: Message-ID: On Tue, Jun 25, 2024 at 2:19 PM Matti Nykänen < matti.johannes.nykanen at gmail.com> wrote: > In her book "The Programmer’s Brain" (Manning, 2021) Felienne Hermans (who > knows Haskell) says, among other things, that reserved words like "while" > and so on act as *cognitive anchors* which support our brains in learning > programming languages by giving a familiar foothold in the early steps. > > Haskell has none of that: not even a strict division of syntactic > structures for representing control vs. data - because it does not have it > in its semantics either. > > What (if anything) does that portend to learning Haskell? To teaching it? > To assessing the learner's progress? > This is something we already know about: that Haskell is a very different language from procedural or OO languages. The cognitive anchors are very different. (It's also not new: in some OO languages, many of these are methods instead of keywords.) Which asks a different question: just how fundamental are these anchors to begin with? Which is also a question in many other disciplines which are starting to expand beyond Western-dominated viewpoints. (For example, a fairly major assumption about how human brains process musical chords was recently struck down by careful research into non-Western musical motifs and how native listeners perceive them.) -- brandon s allbery kf8nh allbery.b at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From icfp.publicity at googlemail.com Wed Jun 26 09:23:49 2024 From: icfp.publicity at googlemail.com (ICFP Publicity) Date: Wed, 26 Jun 2024 11:23:49 +0200 Subject: [Haskell-cafe] ICFP 2024: Call fo Volunteers Message-ID: ICFP 2024: CALL FOR VOLUNTEERS Sign up to be a Volunteer and help us make ICFP 2024 a unique experience for all attendants! ICFP 2024 is pleased to offer a number of opportunities for volunteers, who are vital to the efficient operation and continued success of the conference each year. The volunteer program is a chance for people from around the world to participate in the conferences whilst assisting us in preparing and running the event. The Volunteer Program helps more people attend the ICFP conference by covering conference fees, including access to the banquet (but not travel or lodging expenses) in exchange for a fixed number of work hours (usually from 12 to 15) helping with the conference organization. How to apply: Please apply using this form: https://forms.gle/688UyUSRTfSGSCGF9 The deadline is *July 15th*. Eligibility: Everyone is welcome to apply. Priority is given to junior members of our community, e.g. full- or part-time students of computer science and related fields. Expectations: Applicants must be available for at least four (4) full days between September 2th and September 7th, 2024, and will be expected to provide a total of 12-15 hours of volunteering work in that time. The skills, talents, and dedication of our Volunteers contribute to the overall quality of the conference. The Volunteer role this year will mainly involve working with the organizers to prepare for the conference by providing technical assistance to attendees, managing online Q&A and poster sessions, and supporting active communication in our online environment. Compensation: * A Complimentary Conference Registration, offering access to all open sessions (i.e., parallel paper presentations, demonstrations, and workshops) and conference proceedings. * Free lunches and refreshments during breaks. * Volunteer garments. * Free admission to all social events. Please note that volunteers are responsible for their own travel and accommodation arrangements. If you need additional travel funding, please consider SIGPLAN PAC Funding and PLMW: * https://www.sigplan.org/PAC/ * https://icfp24.sigplan.org/home/PLMW-ICFP-2024 -------------- next part -------------- An HTML attachment was scrubbed... URL: From a.pelenitsyn at gmail.com Fri Jun 28 18:31:11 2024 From: a.pelenitsyn at gmail.com (Artem Pelenitsyn) Date: Fri, 28 Jun 2024 14:31:11 -0400 Subject: [Haskell-cafe] [ANN] cabal-install-3.12.1.0 (and accompanying libraries) released Message-ID: Dear all, The cabal release team brings you the release of the cabal-install tool, version 3.12.1.0. This is the first release of the tool in the 3.12 series, and, hence, the first cabal-install supporting Cabal 3.12 packaged with GHC 9.10.1. We also update the three main libraries. - cabal-install: The command-line interface for Cabal and Hackage. - Cabal: A framework for packaging Haskell software - Cabal-syntax: A library for working with .cabal files - cabal-install-solver: The command-line interface for Cabal and Hackage. The binaries for cabal-install are available on our website and can be installed via GHCup manually, e.g.: - Linux x86_64 (static, alpine3_18): ghcup --no-cache install cabal -u 'https://downloads.haskell.org/cabal/cabal-install-3.12.1.0/cabal-install-3.12.1.0-x86_64-linux-alpine3_18.tar.xz' 3.12.1.0 - MacOS AArch64: ghcup --no-cache install cabal -u 'https://downloads.haskell.org/cabal/cabal-install-3.12.1.0/cabal-install-3.12.1.0-aarch64-darwin.tar.xz' 3.12.1.0 - Windows: ghcup --no-cache install cabal -u 'https://downloads.haskell.org/cabal/cabal-install-3.12.1.0/cabal-install-3.12.1.0-x86_64-windows.zip' 3.12.1.0 - or a similar command for your platform using the binaries provided on the website - as usual, cabal update && cabal install cabal-install-3.12.1.0 is an option too. We expect the official GHCup channel to be updated with the 3.12.1.0 binaries soon. What is new *Performance* - Significant speedups during cabal startup due to use of the latest tar *Project Organization* - Support for asm, cmm, and js sources in executable components - Support for per-component builds when coverage is enabled - Haskell files in explicit source directories take precedence over autogenerated Haskell files - Fix precedence for PATH for build-tools-depends (executables from PATH don’t shadow executables from build-tool-depends anymore) *UX* - Errors now have error codes, which will be documented on https://errors.haskell.org - A new subcommand, cabal path, which can be used to get information about the paths cabal will use within a project - Support for authentication tokens for uploading to Hackage - --(test-)show-details=direct is now the default - Shorten solver rejection messages by removing repetition - Show provenance of project constraints *Interaction with GHC* - Support for loading multiple components into one repl session - Support for the --semaphore flag to enable interaction with GHC Job Server protocol - Support for GHC2024 - Support for language extensions ExtendedLiterals¸ ListTuplePuns, and TypeAbstractions *Other Compilers* - Micro Haskell (MHS) has been added as a known compiler. We don’t have support for driving it yet, though. See the release notes for more details and other changes. Contributors 50^2, Adam Gundry, Andrea Bedini, Andreas Abel, Andreas Klebinger, Arjun Kathuria, Artem Pelenitsyn, BasLaa, Bas Laarakker, Ben Gamari, Bodigrim, Brandon Chinn, brandon s allbery kf8nh, Bryan Richter, Colton Clemmer, Csaba Hruska, cydparser, Daniel Trstenjak, David Binder, David Christiansen, Edwin Marshall, Elodie Lander, Erik de Castro Lopo, Felix Yan, fendor, Finley, Francesco Ariis, Francesco Gazzetta, Fraser Tweedale, Gershom Bazerman, Hamish Mackenzie, Hécate Moonlight, Ikko Eltociear Ashimine, Jana Chadt, Javier Sagredo, Jean-Paul Calderone, Jens Petersen, Jessica Hamilton, John Paul Adrian Glaubitz, Josh Meredith, Julia Longtin, Julian Ospald, Kazuki Okamoto, Kristen Kozak, Krzysztof Gogolewski, liamzee, Liisi Kerik, Lin Runze, Malte Neuss, malteneuss, Marcin Szamotulski, Matthew Pickering, Mel Zuser, Michael Peyton Jones, Mike Pilgrem, Mikolaj Konarski, mixphix, Oleg Grenrus, Ondřej Šebek, Patrick Augusto, Patrick Dougherty, Peter Becich, Phil de Joux, Pierre Le Marre, Rebecca Turner, Rodrigo Mesquita, Ryan Scott, Samuel Thibault, Sander, Sebastian Tee, Sergey Vinokurov, Shae Erisson, sheaf, Simon Hengel, Siyuan Chen, Sören Tempel, SuganyaAK, Suganya Raju, Sylvain Henry, Taylor Fausak, Teo Camarasu, Tom Ellis, tomjaguarpaw, Tommy Bidne, Tom Smeding, Torsten Schmits, Tristan Cacqueray, Troels Henriksen, Wismill, Yvan Sraka, Zoe Zuser We thank all contributors as well as our reviewers, QA testers, devops, and others without whom this release wouldn’t be possible. Feedback Please, report any issues you notice with the 3.12.1.0 release on our GitHub: https://github.com/haskell/cabal — cabal release team (Artem, Brandon, Francesco, Gershom, Hécate, Mikołaj) -------------- next part -------------- An HTML attachment was scrubbed... URL: