#836: rebindable if-then-else syntax ----------------------------------+----------------------------------------- Reporter: nibro | Owner: SamAnklesaria Type: feature request | Status: new Priority: normal | Milestone: _|_ Component: Compiler (Parser) | Version: 6.13 Keywords: | Testcase: N/A Blockedby: | Difficulty: Unknown Os: Unknown/Multiple | Blocking: Architecture: Unknown/Multiple | Failure: None/Unknown ----------------------------------+-----------------------------------------
Comment(by simonpj): My thoughts * Like igloo, I would much prefer a `RebindableSyntax` flag (using `ImplicitPrelude` is anyway a hack) than one for 'if' alone. I really don't want `RebindableIf`. * There is no difficulty with using the old typing rule for `if` when `RebindableSyntax` is off, and the new one when it is on. (That isn't the way other rebindable syntax is done, but it doesn't matter.) Doing that means that the Prelude doesn't need to export `ifThenElse` * Many libraries use if, but few (none?) use both (a) rebindable syntax and (b) `if` with an unlifted return type. That would be the unsupported combination under the new scheme. But there's a way out in that case: use `case`. In short, my proposal is: * Add `RebindableSyntax` flag. (It might imply `NoImplicitPrelude`.) * Choose which typing rule to use for `if` based on the flag Simon -- Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/836#comment:28> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler _______________________________________________ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs