Re: DoAndIfThenElse
Since I started programming in Haskell a few years ago I have been using if-then-else in that manner without indentation and I never knew about this extension. I thought this is how it works. It seems this is the default now. But, I remember encountering an error in an older compiler version once and then I figured the my style was accepted in newer compiler versions only. -harendra On 9 February 2018 at 08:08, Brandon Allberywrote: > Huh. I wonder if a section went missing; seems like none of the extensions > that alter or relax layout are documented currently. > (AlternativeLayoutRule, AlternativeLayoutRuleTransitional, > DoAndIfThenElse, NondecreasingIndentation, RelaxedLayout) > > IIRC DoAndIfThenElse relaxes a condition implied by layout but that > normally only matters in "do": that if you break it into multiple lines, > the "then" and "else" must be indented farther than the "if" or layout will > consider them distinct new expressions (and thereby syntax errors). > > On Thu, Feb 8, 2018 at 9:24 PM, Harendra Kumar > wrote: > >> Hi, >> >> I recently found a mention of DoAndIfThenElse extension somewhere. I >> looked inside the ghc user guide and could not find any such extension. >> Then I looked in the ghc man page, no mention. I googled and found a very >> sparse references to it here and there. Then I tried using the extension >> with ghc and ghc seems to accept it. What's the story behind this, why is >> it not documented but accepted? >> >> thanks, >> harendra >> >> ___ >> ghc-devs mailing list >> ghc-devs@haskell.org >> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs >> >> > > > -- > brandon s allbery kf8nh sine nomine > associates > allber...@gmail.com > ballb...@sinenomine.net > unix, openafs, kerberos, infrastructure, xmonad > http://sinenomine.net > ___ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Re: DoAndIfThenElse
Hi, not sure if this helps. testsuite/tests/parser/should_compile/DoAndIfThenElse.hs gives us ``` {-# LANGUAGE DoAndIfThenElse #-} module DoAndIfThenElse where foo :: IO () foo = do if True then return () else return () ``` and there is some other mention in libraries/bytestring/bench/wiki-haskell.html, which states: ``` Haskell 2010 adds the foreign function interface (FFI) to Haskell, allowing for bindings to other programming languages, fixes some syntax issues (changes in the formal grammar) and bans so-called "n-plus-k-patterns", that is, definitions of the form fact (n+1) = (n+1) * fact n are no longer allowed. It introduces the Language-Pragma-Syntax-Extension which allows for designating a Haskell source as Haskell 2010 or requiring certain extensions to the Haskell language. The names of the extensions introduced in Haskell 2010 are DoAndIfThenElse, HierarchicalModules, EmptyDataDeclarations, FixityResolution, ForeignFunctionInterface, LineCommentSyntax, PatternGuards, RelaxedDependencyAnalysis, LanguagePragma and NoNPlusKPatterns.[1] ``` in compiler/main/DynFlags.hs we find ``` languageExtensions (Just Haskell2010) = [LangExt.ImplicitPrelude, LangExt.MonomorphismRestriction, LangExt.DatatypeContexts, LangExt.TraditionalRecordSyntax, LangExt.EmptyDataDecls, LangExt.ForeignFunctionInterface, LangExt.PatternGuards, LangExt.DoAndIfThenElse, LangExt.RelaxedPolyRec] ``` So, in Haskell2010, it's always on, and allows to write the above code. When we set NoDoAndIfThenElse, we get ``` Unexpected semi-colons in conditional: if True; then return (); else return () Perhaps you meant to use DoAndIfThenElse? ``` And then there's https://prime.haskell.org/wiki/DoAndIfThenElse. Cheers, Moritz > On Feb 9, 2018, at 10:24 AM, Harendra Kumarwrote: > > Hi, > > I recently found a mention of DoAndIfThenElse extension somewhere. I looked > inside the ghc user guide and could not find any such extension. Then I > looked in the ghc man page, no mention. I googled and found a very sparse > references to it here and there. Then I tried using the extension with ghc > and ghc seems to accept it. What's the story behind this, why is it not > documented but accepted? > > thanks, > harendra > ___ > ghc-devs mailing list > ghc-devs@haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs ___ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Re: DoAndIfThenElse
Huh. I wonder if a section went missing; seems like none of the extensions that alter or relax layout are documented currently. (AlternativeLayoutRule, AlternativeLayoutRuleTransitional, DoAndIfThenElse, NondecreasingIndentation, RelaxedLayout) IIRC DoAndIfThenElse relaxes a condition implied by layout but that normally only matters in "do": that if you break it into multiple lines, the "then" and "else" must be indented farther than the "if" or layout will consider them distinct new expressions (and thereby syntax errors). On Thu, Feb 8, 2018 at 9:24 PM, Harendra Kumarwrote: > Hi, > > I recently found a mention of DoAndIfThenElse extension somewhere. I > looked inside the ghc user guide and could not find any such extension. > Then I looked in the ghc man page, no mention. I googled and found a very > sparse references to it here and there. Then I tried using the extension > with ghc and ghc seems to accept it. What's the story behind this, why is > it not documented but accepted? > > thanks, > harendra > > ___ > ghc-devs mailing list > ghc-devs@haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs > > -- brandon s allbery kf8nh sine nomine associates allber...@gmail.com ballb...@sinenomine.net unix, openafs, kerberos, infrastructure, xmonadhttp://sinenomine.net ___ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
DoAndIfThenElse
Hi, I recently found a mention of DoAndIfThenElse extension somewhere. I looked inside the ghc user guide and could not find any such extension. Then I looked in the ghc man page, no mention. I googled and found a very sparse references to it here and there. Then I tried using the extension with ghc and ghc seems to accept it. What's the story behind this, why is it not documented but accepted? thanks, harendra ___ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
RE: Can't typeset docs
Simon Peyton Jones via ghc-devswrites: > | > When I have > | > > | > BUILD_SPHINX_HTML= YES > | > > | > BUILD_SPHINX_PDF = YES > | > I get this error in my build. Any ideas? I think Sphinx is up to > | date. > | > Thanks > | > Simon > | > > | I suspect the cause here is the --no-clean, which doesn't run ./boot > | and ./configure. The latter generates docs/users_guide/ghc_config.py, > | which appears to be missing. Is the problem reproducible with a fresh > | validate? > > Thanks Ben. I think you are right -- sorry about that. I didn't know that > you need to start from clean of you change those settings. > > But a fresh validate still fails, just differently. Tail of the log is > below. There seem be two suspicious lines: > > Package cmap Warning: pdftex not detected - exiting. > > and later > > (/usr/share/texlive/texmf-dist/doc/support/pedigree-perl/examples/english.cfg > ! You can't use `macro parameter character #' in vertical mode. > l.1 # > An example configuration file for pedigree program > No pages of output. > Hmm, judging from this [1] I would guess that this is a system configuration issue. Does your configuration set TEXINPUTS by any chance? Cheers, - Ben [1] https://tex.stackexchange.com/questions/91284/error-in-english-cfg signature.asc Description: PGP signature ___ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs