GHC Proposals session at Haskell Symposium at ICFP

2022-08-30 Thread Joachim Breitner
! Cheers, Joachim -- Joachim Breitner m...@joachim-breitner.de http://www.joachim-breitner.de/ ___ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users

Re: Types differ, but they look the same

2022-04-08 Thread Joachim Breitner
Hi, Am Freitag, dem 08.04.2022 um 16:58 +0200 schrieb Joachim Breitner: > what might make eqType go False that is _not_ visible in the pretty- > printed view? I have a hunch: `(%,%) a b` differs from `(,) a b`, but both are pretty-printed as (a, b)`… I’ll shout if that wasn’t it.

Types differ, but they look the same

2022-04-08 Thread Joachim Breitner
might make eqType go False that is _not_ visible in the pretty- printed view? Cheers, Joachim -- Joachim Breitner m...@joachim-breitner.de http://www.joachim-breitner.de/ ___ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http

Call for lightning talks and participation -- Haskell Implementors' Workshop

2018-09-16 Thread Joachim Breitner
and are not published in the conference proceedings. Program Committee - * Edwin Brady (University of St. Andrews, UK) * Joachim Breitner – chair (DFINITY / University of Pennsylvania) * Ben Gamari (Well-Typed LLP) * Michael Hanus (Kiel University) * Roman Leshchinsky (Facebook) * Niki

Final Call for Talks -- Haskell Implementors' Workshop

2018-07-16 Thread Joachim Breitner
-in-progress project, a problem to intrigue and perplex Haskell implementors, or simply to ask for feedback and collaborators. Program Committee - * Edwin Brady (University of St. Andrews, UK) * Joachim Breitner – chair (University of Pennsylvania) * Ben Gamari (Well-Typed LLP

2nd Call for Talks -- Haskell Implementors' Workshop

2018-07-02 Thread Joachim Breitner
, a work-in-progress project, a problem to intrigue and perplex Haskell implementors, or simply to ask for feedback and collaborators. Program Committee - * Edwin Brady (University of St. Andrews, UK) * Joachim Breitner – chair (University of Pennsylvania) * Ben Gamari (Well-Typed LLP

Re: Open up the issues tracker on ghc-proposals

2018-05-02 Thread Joachim Breitner
dropped in the process, which is also good :-)). Cheers, Joachim -- Joachim Breitner m...@joachim-breitner.de http://www.joachim-breitner.de/ signature.asc Description: This is a digitally signed message part ___ Glasgow-haskell-users mailing l

Re: How to highlighting subexpressions in dumped core?

2018-03-07 Thread Joachim Breitner
t peculiar needs, it’s not too big. (Although highlights in CoreLint output would be useful for all of use.) Thanks for your input, Joachim -- Joachim Breitner m...@joachim-breitner.de http://www.joachim-breitner.de/ signature.asc Description: This

How to highlighting subexpressions in dumped core?

2018-03-06 Thread Joachim Breitner
e other options that I might not see right now? Cheers, Joachim -- Joachim Breitner m...@joachim-breitner.de http://www.joachim-breitner.de/ signature.asc Description: This is a digitally signed message part ___ Glasgow-haskell-users maili

Why is EvTerm limited?

2018-01-19 Thread Joachim Breitner
Hi, I had some funky idea where a type checker plugin would have to synthesize code for a custom-solved instances on the fly. But it seems that does not work because EvTerm is less expressive than Core (especially, no lambdas):

Re: Maybe String -> CoreExpr in a GHC plugin

2018-01-19 Thread Joachim Breitner
Hi, Am Dienstag, den 16.01.2018, 11:08 -0500 schrieb Joachim Breitner: > in a GHC plugin, I want to synthesize simple data structures, and > insert them into the code. What is the most idiomatic way of writing a > function, say, > > foo :: Maybe String -> CoreExpr > >

Maybe String -> CoreExpr in a GHC plugin

2018-01-16 Thread Joachim Breitner
Hi, in a GHC plugin, I want to synthesize simple data structures, and insert them into the code. What is the most idiomatic way of writing a function, say, foo :: Maybe String -> CoreExpr or foo :: Maybe String -> CoreM CoreExpr so that the resulting CoreExpr describes the input.

Re: Rewrite rules involving LHS lambda?

2017-12-02 Thread Joachim Breitner
in http://incredible.pm/ but that was a much simpler setting than a complex typed language like Core. Implementing some form of higher-order pattern matching might actually be doable, but would it be reliable? When does it become undecidable? Joachim -- Joachim Breitner m...@joachi

Annotations with names

2017-11-04 Thread Joachim Breitner
Hi, I’d like to use Annotations to transport some meta-information from the Haskell source to GHC Plugins (as they are meant to be, right?). But I am struggling expressing annotations that relate different symbols. Here are some hypthetical examples what I want to express: foo :: String ->

Re: How does GHC's testsuite work?

2017-10-30 Thread Joachim Breitner
zation function” that checks the output for a certain property, e.g. by grepping for certain patterns. The only real unit tests that I know of are these: http://git.haskell.org/ghc.git/tree/HEAD:/testsuite/tests/callarity/unittest These are effectively programs using “GHC-the-library” Joachim -- Joach

Re: GHC rewrite rule type-checking failure

2017-10-04 Thread Joachim Breitner
ntain and extend, and I thought that dictionary > synthesis from rewrite rules might be one. > > Regards, > -- Conal > > On Tue, Oct 3, 2017 at 8:49 AM, Joachim Breitner <m...@joachim-breitner.de> > wrote: > > Hi, > > > > Now that I think about it: You

Re: GHC rewrite rule type-checking failure

2017-10-03 Thread Joachim Breitner
; Regards, - Conal > > On Tue, Oct 3, 2017 at 7:52 AM, Joachim Breitner <m...@joachim-breitner.de> > wrote: > > Hi, > > > > > > Am Montag, den 02.10.2017, 17:03 -0700 schrieb Conal Elliott: > > > My questions: > > > > > > *

Re: GHC rewrite rule type-checking failure

2017-10-03 Thread Joachim Breitner
tion. (Or maybe TH can create such rules?) If this idiom turns out to be useful, I wonder if there is a case for -rules specified in type classes that get instantiated upon every instance, e.g. class C k where comp' :: k b c -> k a b -> k a c {-# RULES &qu

Re: GHC rewrite rule type-checking failure

2017-10-02 Thread Joachim Breitner
gt; > -- • Could not deduce (D k b) arising from a use of ‘addC’ > -- from the context: D (->) b > > -- Why does GHC infer the (C k) constraint for the first rule but not (D k b) > -- for the second rule? > > ___ > Glasgow-haskell-

Re: How to get a heap visualization

2017-09-01 Thread Joachim Breitner
Hi, author of ghc-heap-view here. Am Mittwoch, den 30.08.2017, 18:34 +0300 schrieb Yitzchak Gale: > Getting ghc-vis to compile looks hopeless, for a number of reasons. > The dependencies on gtk and cairo are huge. Is that really a problem? > It hasn't been updated > on Hackage for a year and

Folding over short static lists

2017-02-28 Thread Joachim Breitner
Hi, a common pattern is x `elem` [a,b,c] or x `elem` "/!#" instead of x == a || x == b || x == c or x == '/' || x == '!' || x == '#'. This used to be also what hlint suggested, although that hint was removed https://github.com/ndmitchell/hlint/issues/31. Upon closer inspection it seems

Re: Accessing the "original" names via GHC API

2017-01-24 Thread Joachim Breitner
Hi Ranjit, Am Dienstag, den 24.01.2017, 16:09 -0800 schrieb Ranjit Jhala: > My goal is to write a function > >    tyconString :: TyCon -> String  > > (perhaps with extra parameters) such that given the  > `TyCon` corresponding to `Set`, I get back the "original"  > name `S.Set`, or even

Re: Rewrite rules

2017-01-13 Thread Joachim Breitner
Hi, Am Freitag, den 13.01.2017, 20:27 +1100 schrieb Erik de Castro Lopo: > Michael Snoyman wrote: > > > Could be I'm misunderstanding, but are you looking for -ddump-rule- > > firings? > > Wasn't aware of that, but my question was a little more general. > > If I write a library that includes

Re: Narrower (per-method) GND

2017-01-08 Thread Joachim Breitner
Hi, just responding to this one aspect: Am Sonntag, den 08.01.2017, 21:16 -0500 schrieb David Feuer: > but using defaults for > the others would give poor implementations. To cover this case, I > think it would be nice to add per-method GND-deriving syntax. This > could look something like > >

Re: Proposal: ArgumentDo

2016-07-11 Thread Joachim Breitner
Hi, Am Montag, den 11.07.2016, 08:31 +0200 schrieb Sven Panne: > Because at first glance, this is visually only a tiny fraction away > from >   >    (if c then f else g)  it d them a elsa b > > which would be parsed in a totally different way. (Personally, I > think that if/then/else is useless

Re: Proposal: ArgumentDo

2016-07-08 Thread Joachim Breitner
Hi, Am Freitag, den 08.07.2016, 13:09 +0200 schrieb Sven Panne: > I don't think so: https://ghc.haskell.org/trac/ghc/wiki/ArgumentDo#Bl > ockasaLHS explicit states that > >    do f &&& g >    x > > parses as > >    (f &&& g) x Correct > , so > >    foobar >       do f &&& g >       x > >

Re: Proposal: ArgumentDo

2016-07-08 Thread Joachim Breitner
Hi, Am Freitag, den 08.07.2016, 11:32 +0200 schrieb Sven Panne: > 2016-07-08 9:09 GMT+02:00 Joachim Breitner <m...@joachim-breitner.de>: > > Am Freitag, den 08.07.2016, 08:35 +0200 schrieb Sven Panne: > > >    foobar > > >       do f &&& g > >

Re: Proposal: ArgumentDo

2016-07-08 Thread Joachim Breitner
Hi, Am Freitag, den 08.07.2016, 08:35 +0200 schrieb Sven Panne: >    foobar >       do f &&& g >       x > > Should the x now be an argument of foobar (as it is currently) or the > "do"? If it is not an argument of the "do", suddenly things get very > context-dependent. Computers are good at

Re: Proposal: ArgumentDo

2016-07-07 Thread Joachim Breitner
Hi, Am Donnerstag, den 07.07.2016, 13:15 -0400 schrieb Carter Schonwald: > agreed -1, > ambiguity is bad for humans, not just parsers.  > > perhaps most damningly,  > > f do{ x } do { y } > > is just reallly really weird/confusing to me, It is weird to me, but in no way confusing under the

Re: Allow extra commas in module declarations or lists?

2016-06-12 Thread Joachim Breitner
Hi, Am Samstag, den 11.06.2016, 12:12 -0700 schrieb Michael Burge: > What do you think? For the module header, this is already possible. For the term language, it unfortunately clashes with things like TupleSections. I believe this has been discussed a few times in the past, e.g.

Re: Reconsidering -Wall and -Wcompat

2016-02-14 Thread Joachim Breitner
[Deliberately restricting my reply to one mailing list. Cross-posting is usually not required.] Hi, Am Sonntag, den 14.02.2016, 19:51 +0100 schrieb Sven Panne: > As stated on the Wiki, stuff in -Wcompat will often be non- > actionable, you omitted the important “if backwards compatibility is

Re: [ANNOUNCE] Glasgow Haskell Compiler version 7.10.3

2015-12-09 Thread Joachim Breitner
Hi, Am Mittwoch, den 09.12.2015, 06:51 -0700 schrieb Jeremy: > "fix" is hyperlinked to itself, and it doesn't say what the fix is > for. that is intended. fix is inherent self-referential, and furthermore polymorphic. Greetings, Joachim PS: SCNR  -- Joachim “nomeata” Breitner

Re: type error formatting

2015-10-25 Thread Joachim Breitner
Hi, Am Samstag, den 24.10.2015, 13:14 -0700 schrieb Evan Laforge: > WRT the "bound at" bits in "relevant bindings", I have no strong > opinion.  What about omitting them if they are in the same file as > the main error?  Or maybe they always are?  I'm not totally clear how > it chooses which

Re: type error formatting

2015-10-25 Thread Joachim Breitner
Hi, Am Sonntag, den 25.10.2015, 21:30 +0100 schrieb MigMit: > Doesn't seem worth it to me. Current format is quite parseable, and > not really bad for human eyes either. I know that you meant this as a litote, but let me ignore that I know that for a moment to reply, that “not really bad” is

Re: type error formatting

2015-10-24 Thread Joachim Breitner
Hi, Am Samstag, den 24.10.2015, 10:08 +0100 schrieb Malcolm Wallace: > On 24 Oct 2015, at 09:17, Joachim Breitner wrote: > > > For example in > > > > >    Relevant bindings include > > >   syllables :: [(a1, Syllable)] > > > (

Re: type error formatting

2015-10-24 Thread Joachim Breitner
Hi, thanks for starting this discussion, and I agree with your suggestion. Maybe we can brainstorm some more fine refinements. Given that our error message are on the rather verbose side, maybe there is detail that can be omitted. For example in >    Relevant bindings include >       syllables

Re: Increased memory usage with GHC 7.10.1

2015-04-14 Thread Joachim Breitner
Hi, Am Dienstag, den 14.04.2015, 21:54 +0200 schrieb Michal Terepeta: On Mon, Apr 13, 2015 at 10:34 PM, Christiaan Baaij christiaan.ba...@gmail.com wrote: Actually, I meant only with -fno-specialise. Done. Helps quite a bit but CallArity is still a pretty expensive. I’m on that, and I

Re: Discovery of source dependencies without --make

2014-11-25 Thread Joachim Breitner
Dear Lars, Am Dienstag, den 25.11.2014, 10:36 +0100 schrieb Lars Hupel: The invocation is similar to this: ghc -c -outputdir $OUT -XTrustworthy Library.hs ghc -c -outputdir $OUT -i$OUT -XSafe $SUBMISSION ghc -c -outputdir $OUT -i$OUT Test_Suite.hs ghc-outputdir $OUT -i$OUT -o

Re: Hiding import behaviour

2014-10-18 Thread Joachim Breitner
Hi, Am Samstag, den 18.10.2014, 11:02 -0700 schrieb htebalaka: I guess my central point is I don't see how anyone can benefit from the current behaviour. For instance, a simple real world example: import Prelude import Data.Text.Lazy.IO (putStrLn) I find this quite convincing. If I bother

ghc, tls, gmp

2014-07-05 Thread Joachim Breitner
Hi, in Debian, we have the (well-known) problem of linking against libraries using libgmp, in this case haskell-curl, which links against libcurl, which links against gnutls, which uses libgmp since the latest release: https://lists.debian.org/debian-haskell/2014/07/msg0.html Are there any

Asserting that list fusing kicked in

2014-05-26 Thread Joachim Breitner
Hi, for those of you who don’t follow Planet Haskell and haven’t seen my blog post¹ on it: I have created a (very) small library list-fusion-probe with an identity function fuseThis :: [a] - [a] that will complain loudly (at run-time, for the time being) if the argument is not

Re: Buildbots

2014-04-01 Thread Joachim Breitner
Hi, Am Dienstag, den 01.04.2014, 10:25 + schrieb Simon Peyton Jones: Joachim Breitner has set up Travis-CI. (I don't know exactly what that is, but it sounds useful.) Travis is a free cloud service that runs arbitrary tests (in our case, a stripped version of validate) upon pushes to git

Re: PROPOSAL: Literate haskell and module file names

2014-03-16 Thread Joachim Breitner
Hi, Am Sonntag, den 16.03.2014, 13:56 +0100 schrieb Merijn Verstraaten: Cons: GHC would have to either maintain a possibly long of variants to look for ([.hs, .lhs, .rst.lhs, .md.lhs, .svg.lhs, .docx.lhs]), or look for Foo.*.lhs. I’d find the latter acceptable, but it should be noted.

RC2 build failure on Debian: armhf

2014-03-14 Thread Joachim Breitner
Hi, armhf still fails like in RC1: https://buildd.debian.org/status/fetch.php?pkg=ghcarch=armhfver=7.8.20140228-1stamp=1394723755 [..] 0% ( 0 / 5) in 'WwLib' 0% ( 0 / 2) in 'DmdAnal' 0% ( 0 / 2) in 'WorkWrap' compiler/typecheck/TcSplice.lhs-boot:29:1: TcSplice.tcTopSpliceExpr

Re: RC2 build failures on Debian: sparc

2014-03-12 Thread Joachim Breitner
with unregisterised via-C compilation then we can probably fix it. Could you open a ticket (or point me to the existing ticket if there is one)? Cheers, Simon On 05/03/2014 21:54, Joachim Breitner wrote: Hi, sparc fails differently than in RC1, and very plainly

RC2 build failure on Debian: armel

2014-03-12 Thread Joachim Breitner
Hi, armel still fails like in RC1: https://buildd.debian.org/status/fetch.php?pkg=ghcarch=armelver=7.8.20140228-1stamp=1394495564 inplace/bin/ghc-stage2 -o utils/haddock/dist/build/tmp/haddock ... /«PKGBUILDDIR»/compiler/stage2/build/libHSghc-7.8.0.20140228.a(genSym.o): In function `genSym':

RC2 build failures on Debian: sparc

2014-03-05 Thread Joachim Breitner
Hi, sparc fails differently than in RC1, and very plainly with a segmentation fault in dll-split (which happens to be the first program to be run that is compiled with stage1): https://buildd.debian.org/status/fetch.php?pkg=ghcarch=sparcver=7.8.20140228-1stamp=1393975264 Any ideas? Anyone

RC2 build failures on Debian: mips

2014-03-04 Thread Joachim Breitner
Hi, building RC2 right now, and the failures have changed. Reporting as the come in: Am Donnerstag, den 06.02.2014, 13:36 + schrieb Joachim Breitner: mips (https://buildd.debian.org/status/fetch.php?pkg=ghcarch=mipsver=7.8.20140130-1stamp=1391631539) mipsel (https://buildd.debian.org

Re: ghc-7.8.1 and stm

2014-02-19 Thread Joachim Breitner
Hi, Am Mittwoch, den 19.02.2014, 11:13 +0100 schrieb Herbert Valerio Riedel: On 2014-02-18 at 23:22:13 +0100, Joachim Breitner wrote: Am Dienstag, den 18.02.2014, 14:12 -0800 schrieb David Fox: It seems to me that the stm library that is supposed to be built into ghc-7.8.1 is missing

Re: ghc-7.8.1 and stm

2014-02-18 Thread Joachim Breitner
Hi David, Am Dienstag, den 18.02.2014, 14:12 -0800 schrieb David Fox: It seems to me that the stm library that is supposed to be built into ghc-7.8.1 is missing. The deb provides and conflicts with libghc-stm-dev , but does not provide libghc-stm-dev-2.4.2.1-abcde. this seems to be the

Re: 7.8.1, template haskell, and dynamic libraries

2014-02-09 Thread Joachim Breitner
Hi, Am Sonntag, den 09.02.2014, 14:37 -0600 schrieb Austin Seipp: There is one caveat, if I remember correctly: if a package uses TemplateHaskell, it must declare it as such in the Cabal file. This is because Cabal does not parse the source to detect if TemplateHaskell is needed in the

Re: RC1 build failures on Debian

2014-02-07 Thread Joachim Breitner
to Debian experimental, so that these problems are found closer to their cause. Or hope for the builders network resurrection. Greetings, Joachim -- Joachim Breitner e-Mail: m...@joachim-breitner.de Homepage: http://www.joachim-breitner.de Jabber-ID: nome...@joachim-breitner.de signature.asc

RC1 build failures on Debian

2014-02-06 Thread Joachim Breitner
Hi, with RC1 in experimental, the Debian auto-builders have now picked up building 7.8, and it is failing on armel, hurd-i386, mips and mipsel: armel (https://buildd.debian.org/status/fetch.php?pkg=ghcarch=armelver=7.8.20140130-1stamp=1391666879) inplace/bin/ghc-stage2 -o

Re: ANNOUNCE: GHC 7.8.1 Release Candidate 1

2014-02-05 Thread Joachim Breitner
, Joachim -- Joachim Breitner e-Mail: m...@joachim-breitner.de Homepage: http://www.joachim-breitner.de Jabber-ID: nome...@joachim-breitner.de signature.asc Description: This is a digitally signed message part ___ Glasgow-haskell-users mailing

Re: test build of current ghc-7.8

2014-02-04 Thread Joachim Breitner
Hi, Am Dienstag, den 04.02.2014, 09:52 +0900 schrieb Jens Petersen: Am Montag, den 03.02.2014, 19:49 +0900 schrieb Jens Petersen: Hi, I did a test build [1] of the current ghc-7.8 branch for Fedora 21 devel, which I think should also install to Fedora 20.

Re: test build of current ghc-7.8

2014-02-04 Thread Joachim Breitner
Hi, Am Dienstag, den 04.02.2014, 09:03 + schrieb Joachim Breitner: Am Dienstag, den 04.02.2014, 09:52 +0900 schrieb Jens Petersen: Am Montag, den 03.02.2014, 19:49 +0900 schrieb Jens Petersen: Hi, I did a test build [1] of the current ghc-7.8 branch

Re: test build of current ghc-7.8

2014-02-03 Thread Joachim Breitner
Dear Jens, Am Montag, den 03.02.2014, 19:49 +0900 schrieb Jens Petersen: Hi, I did a test build [1] of the current ghc-7.8 branch for Fedora 21 devel, which I think should also install to Fedora 20. I’m surprised that it worked for you. Did not you not hit

Re: Enabling TypeHoles by default

2014-01-14 Thread Joachim Breitner
Hi, heh, I wanted to throw in the same argument: If its just more elaborate error messages, why do we need a flag for it? So count that as +1 from me. Greetings, Joachim Am Dienstag, den 14.01.2014, 11:12 -0600 schrieb Austin Seipp: I'm actually more in favor of Richard's proposal of just

Re: default roles

2013-10-10 Thread Joachim Breitner
Hi, Am Mittwoch, den 09.10.2013, 23:18 -0400 schrieb Richard Eisenberg: On Oct 9, 2013, at 6:24 PM, Joachim Breitner m...@joachim-breitner.de wrote: So the conclusion is indeed: Let type class constraints have a nominal role, and all is fine. But, then it would seem that any class

Re: default roles

2013-10-09 Thread Joachim Breitner
Hi, Am Mittwoch, den 09.10.2013, 15:21 -0400 schrieb Richard Eisenberg: Wait! I have an idea! The way I've been describing GND all along has been an abbreviation. GHC does not coerce a dictionary from, say, Ord Int to Ord Age. Instead, GHC mints a fresh dictionary for Ord Age where all the

Re: default roles

2013-10-09 Thread Joachim Breitner
Hi, not sure if this is not old news to you all, but I think that for this discussion, it helps to consider these two aspects of a class instance separately: (1) An instance is a record of functions (2) An instance is a function of sorts¹ from types to (1) and clearly, type parameters of (1)

Re: Liberalising IncoherentInstances

2013-08-19 Thread Joachim Breitner
Good morning, Am Samstag, den 27.07.2013, 20:16 + schrieb Simon Peyton-Jones: So the change I propose to make IncoherentInstances to pick arbitrarily among instances that match. More precisely, when trying to find an instance matching a target constraint (C tys), a) Find all instances

Re: Liberalising IncoherentInstances

2013-08-19 Thread Joachim Breitner
Hi, Am Montag, den 19.08.2013, 08:27 + schrieb Simon Peyton-Jones: Yes that makes sense to me. Please do document the reasoning of this thread (and the example you give) in a Note [Incoherent instances] somewhere though! done, patches ready for review and merge at

Marking type constructor arguments as nominal (e.g. Set)

2013-08-18 Thread Joachim Breitner
Hi, now that roles are in HEAD, I could play around a bit with it. They were introduced to solve the unsoundness of newtype deriving, but there is also the problem of abstraction: If I define a set type based on an ord instance, e.g. data Set a = Set a -- RHS here just for demonstration

Re: Marking type constructor arguments as nominal (e.g. Set)

2013-08-18 Thread Joachim Breitner
Hi, not sure – where would injectivity be needed? Greetings, Joachim Am Sonntag, den 18.08.2013, 15:00 -0500 schrieb Nicolas Frisby: Is the non-injectivity not an issue here because the type family application gets immediately simplified? On Sun, Aug 18, 2013 at 12:45 PM, Joachim Breitner

Private classes

2013-08-17 Thread Joachim Breitner
Hi, for some reason I was under the impression that if I don’t export the methods of a class, then no user of my module can create instances. But I was wrong and in fact they can; the methods will just all be bound to error Is there really no way to create a class so that no-one else can

Re: Private classes

2013-08-17 Thread Joachim Breitner
Hi, Am Samstag, den 17.08.2013, 20:34 +0200 schrieb Bas van Dijk: I used the following in the past: module M (PublicClass(..)) where class HiddenClass a class HiddenClass a = PublicClass a where ... ... Now users of M can't declare instances of PublicClass because they don't

Re: Liberalising IncoherentInstances

2013-07-29 Thread Joachim Breitner
Hi, Am Montag, den 29.07.2013, 16:19 +0100 schrieb John Lato: +1 to the original proposal and Edward's suggestion of emitting a warning. I've occasionally wanted this behavior from IncoherentInstances as well. +1 for the proposal, -1 for the warning: It is a feature, not a bug, at least

Re: Exposing newtype coercions to Haskell

2013-07-04 Thread Joachim Breitner
Hi, small update: I generalized the code at https://github.com/nomeata/nt-coerce/blob/9349dd3/GHC/NT/Plugin.hs a bit, it is now able to handle to create NT-values for unwarpping arbitrary newtypes and for lifting across type constructors. It does so unconditionally, i.e. does _not_ yet check

Re: Exposing newtype coercions to Haskell

2013-07-03 Thread Joachim Breitner
Hi, Am Dienstag, den 02.07.2013, 16:28 + schrieb Simon Peyton-Jones: | I also noticed a problem with my logic for creating the NT-lifting | function. Suppose | data C a = MkC (Foo a) | Just having the constructors of C in scope is not sufficient | to safely provide | NT a b -

Re: Exposing newtype coercions to Haskell

2013-07-03 Thread Joachim Breitner
Hi, Am Dienstag, den 02.07.2013, 12:56 -0500 schrieb Nicolas Frisby: For my light experimentation, I have recovered these two values from the ModGuts that all plugins receive. Hopefully someone will shout out if there's pitfalls to avoid. * The mg_rdr_env field is of type GlobalRdrEnv.

Re: Exposing newtype coercions to Haskell

2013-07-03 Thread Joachim Breitner
Hi again, Am Mittwoch, den 03.07.2013, 10:01 +0200 schrieb Joachim Breitner: Am Dienstag, den 02.07.2013, 16:28 + schrieb Simon Peyton-Jones: | I also noticed a problem with my logic for creating the NT-lifting | function. Suppose | data C a = MkC (Foo a) | Just having

Re: Exposing newtype coercions to Haskell

2013-07-02 Thread Joachim Breitner
as the Proxy data constructor is in scope. Greetings, Joachim -- Joachim Breitner e-Mail: m...@joachim-breitner.de Homepage: http://www.joachim-breitner.de ICQ#: 74513189 Jabber-ID: nome...@joachim-breitner.de signature.asc Description: This is a digitally signed message part

Exposing newtype coercions to Haskell

2013-07-01 Thread Joachim Breitner
Hi, this is related to http://hackage.haskell.org/trac/ghc/wiki/NewtypeWrappers#Proposal3. I tried to hack up a little prototype of this, and this “works” now: import GHC.NT newtype Age = Age Int deriving Show ageNT :: NT Age Int ageNT = createNT

Re: ANNOUNCE: GHC version 7.6.3

2013-04-21 Thread Joachim Breitner
Hi, Am Sonntag, den 21.04.2013, 14:23 +0100 schrieb Ian Lynagh: = The (Interactive) Glasgow Haskell Compiler -- version 7.6.3 = The GHC Team is pleased to

Re: Why is GHC so much worse than JHC when computing the Ackermann function?

2013-04-20 Thread Joachim Breitner
Hi, Am Samstag, den 20.04.2013, 13:03 -0700 schrieb Edward Z. Yang: I don't seem to get the leak on latest GHC head. Running the program in GC debug mode in 7.6.2 is quite telling; the program is allocating *a lot* of megablocks. We probably fixed it though? it’s confirmed that it is fixed

Re: base package -- goals

2013-03-13 Thread Joachim Breitner
Hi, Am Mittwoch, den 13.03.2013, 14:04 + schrieb Simon Peyton-Jones: Your follow-on remarks (appended below) about which implicit Prelude you get if you (say) import only `base-pure` are well-taken, but they apply equally to (B). Worth adding a section to the Wiki page to discuss this?

Re: base package -- goals

2013-03-12 Thread Joachim Breitner
Hi, Am Montag, den 11.03.2013, 23:45 + schrieb Simon Peyton-Jones: | I don’t feel in the position to actually make a call here, or even to cast a vote with | confidence, but I’m happy to continue summarizing the discussion until a | consensus is found. If there is more discussion,

Re: base package -- goals

2013-03-12 Thread Joachim Breitner
Hi, Am Dienstag, den 12.03.2013, 14:35 + schrieb Ian Lynagh: I think we should avoid getting bogged down in one small detail at this stage. If we make the bulk of the changes now then we still have a few months to polish the result before it gets effectively frozen by being released. I’m

Re: base package -- goals

2013-03-07 Thread Joachim Breitner
Hi, Am Dienstag, den 26.02.2013, 10:08 + schrieb Simon Peyton-Jones: I think it would be vv helpful to have all these goals articulated on the wiki page. http://hackage.haskell.org/trac/ghc/wiki/SplitBase well, all the goals are there (or are they not sufficiently well

Re: base package -- goals

2013-02-26 Thread Joachim Breitner
Hi, Am Montag, den 25.02.2013, 11:25 -0800 schrieb Johan Tibell: 1. I'd like to have text Handles use the Text type and binary Handles use the ByteString type. Right now we have this somewhat awkward setup where the I/O APIs are spread out and bundled with pure types. Splitting base would

Re: base package -- goals

2013-02-25 Thread Joachim Breitner
Hi, Am Samstag, den 23.02.2013, 10:27 + schrieb Simon Peyton-Jones: I’d like to be very clear about goals, though. I have not been following this thread closely enough, but is there a Wiki page that explains what the goals of the base-package break-up is? I added a Goals section to

Re: base package

2013-02-22 Thread Joachim Breitner
Hi, another status report about my base-splitting experiment: The list of packages has grown to * base-pure: Basic stuff without `IO`, `Foreign` or floating point arithmetic. * base-st: The `ST` monad, uses base-pure. * base-array: Arrays, uses base-st. * base-float: Floating point

Re: base package

2013-02-22 Thread Joachim Breitner
Hi, Am Freitag, den 22.02.2013, 11:38 -0800 schrieb Johan Tibell: In addition, I don't think we want to say that e.g. pure data structures can't depend on the FFI. While their current implementation might not use the FFI, what if we want to use it in the future. We'd have to reshuffle the

Re: base package

2013-02-21 Thread Joachim Breitner
Hi, Am Donnerstag, den 21.02.2013, 09:42 + schrieb Simon Marlow: The trick is indeed neat, but only if it is possible to make IOFail completely invisible. If it isn't possible to make it completely invisible, then I would prefer IOFail to be a first-class exception type without the

Re: base package

2013-02-20 Thread Joachim Breitner
Hi, Am Freitag, den 15.02.2013, 23:00 +0100 schrieb Joachim Breitner: Am Freitag, den 15.02.2013, 14:50 + schrieb Simon Marlow: On 15/02/13 12:22, Joachim Breitner wrote: more progress: On top of base-pure, I created base-io involving GHC/IO and everything required to build it (which

Re: base package

2013-02-20 Thread Joachim Breitner
Hi, Am Mittwoch, den 20.02.2013, 14:57 +0100 schrieb Joachim Breitner: I’m still stuck at the problem of separating the definition of IO and Monad IO from all file related stuff, which is prevented by the Maybe Handle field in the IOError data type. re-reading „An Extensible Dynamically-Typed

Re: base package (Was: GHC 7.8 release?)

2013-02-15 Thread Joachim Breitner
Hi, Am Donnerstag, den 14.02.2013, 21:41 -0500 schrieb brandon s allbery kf8nh: On Thursday, February 14, 2013 at 8:14 PM, Johan Tibell wrote: On Thu, Feb 14, 2013 at 2:53 PM, Joachim Breitner m...@joachim-breitner.de wrote: I don't think having FFI far down the stack is a problem

Re: base package (Was: GHC 7.8 release?)

2013-02-15 Thread Joachim Breitner
Hi, more progress: On top of base-pure, I created base-io involving GHC/IO and everything required to build it (which pulled in ST, some of Foreign and unfortunately some stuff related to Handles and Devices, because it is mentioned in IOException). This is the list of modules:

Re: base package (Was: GHC 7.8 release?)

2013-02-15 Thread Joachim Breitner
Hi, Am Freitag, den 15.02.2013, 14:50 + schrieb Simon Marlow: On 15/02/13 12:22, Joachim Breitner wrote: Hi, more progress: On top of base-pure, I created base-io involving GHC/IO and everything required to build it (which pulled in ST, some of Foreign and unfortunately some stuff

Re: base package (Was: GHC 7.8 release?)

2013-02-14 Thread Joachim Breitner
Hi, Am Donnerstag, den 14.02.2013, 02:21 + schrieb Ian Lynagh: On Wed, Feb 13, 2013 at 07:32:06PM +0100, Joachim Breitner wrote: I have started a wikipage with the list of all modules from base, for a first round of shuffling, grouping and brainstorming: http

Re: base package (Was: GHC 7.8 release?)

2013-02-14 Thread Joachim Breitner
Hi, I made a little progress after crippling GHC.Fingerprint: The package at https://github.com/nomeata/packages-base/tree/base-pure (Branch base-pure) builds and contains just these modules: ./Control/Applicative.hs ./Control/Arrow.hs ./Control/Category.hs ./Control/Monad/Fix.hs

Re: base package (Was: GHC 7.8 release?)

2013-02-14 Thread Joachim Breitner
Hi, Am Donnerstag, den 14.02.2013, 13:19 -0800 schrieb Johan Tibell: That's great. I'm curious I was under the impression that it was hard to split out a pure subset as functions might call 'error' (e.g. due to incomplete pattern matches) and that would pull in the whole I/O subsystem. How

Re: base package (was: GHC 7.8 release?)

2013-02-13 Thread Joachim Breitner
Hi, Am Mittwoch, den 13.02.2013, 11:34 +0200 schrieb Roman Cheplyaka: It would be great to have a portable base, without any GHC-specific stuff in it. After all, modules like Control.Monad or Data.Foldable are pure Haskell2010. while you are considering to split base, please also consider

base package (Was: GHC 7.8 release?)

2013-02-13 Thread Joachim Breitner
Hi, Am Mittwoch, den 13.02.2013, 13:58 + schrieb Ian Lynagh: If we go this route, then we would probably want to end up without a package called 'base', and then to make a new package called 'base' that just re-exports modules from all the new packages. can you transparently re-export a

Re: base package (Was: GHC 7.8 release?)

2013-02-13 Thread Joachim Breitner
Hi, I have started a wikipage with the list of all modules from base, for a first round of shuffling, grouping and brainstorming: http://hackage.haskell.org/trac/ghc/wiki/SplitBase Am Mittwoch, den 13.02.2013, 18:09 + schrieb Ian Lynagh: On Wed, Feb 13, 2013 at 06:28:22PM +0100, Joachim

Re: GHC 7.8 release?

2013-02-11 Thread Joachim Breitner
Hi, one remedy to the problem could be better infrastructure: * More automated test-building of packages on hackage (including test suites) with various GHC releases, and better display of the results. This way, library authors would not have to manually build their

Re: GHC 7.8 release?

2013-02-11 Thread Joachim Breitner
Hi, Am Montag, den 11.02.2013, 22:31 + schrieb Simon Peyton-Jones: No, they track things we call “releases”. Very well, maybe we should call them “previews” instead, and only dignify it as a “release” when, and only when a preview is picked by HP as worthy of incorporation in the next

Re: ANNOUNCE: GHC 7.6.2 Release Candidate 1

2013-01-23 Thread Joachim Breitner
Hi, Am Dienstag, den 22.01.2013, 21:39 -0800 schrieb David Terei: ghc/hschooks.c:36:0: error: conflicting types for ‘StackOverflowHook’ oh, is GHC about to have a feature where, upon a compiler error, it will ask the user „would you like me to ask on stack overflow about this for

RULES map (\x - x) = id

2013-01-17 Thread Joachim Breitner
Hi, I am experimenting with rewrite rules, but found that they do not fire as often as I wanted them. Here is a small example: module MapId where myMap f [] = [] myMap f (x:xs) = f x : myMap f xs {-# RULES map id myMap id = id #-} {-#

  1   2   >