#4116: Type supplement for constructor specific uses of sum types
---------------------------------+------------------------------------------
    Reporter:  gabrielrf         |       Owner:              
        Type:  proposal          |      Status:  new         
    Priority:  normal            |   Component:  Compiler    
     Version:                    |    Keywords:              
          Os:  Unknown/Multiple  |    Testcase:              
Architecture:  Unknown/Multiple  |     Failure:  None/Unknown
---------------------------------+------------------------------------------
Changes (by gabrielrf):

  * version:  6.13 =>


Comment:

 Possible extension with "''Negative patterns''" to avoid out-of-domain
 function parameters :

 as introduced by Wren NG Northon in
 http://article.gmane.org/gmane.comp.lang.haskell.cafe/75669

 given

     case x of
       v @ patt1 -> f v    --
       v @ patt2 -> f v    -- pattern of v == patt2 \\ patt1
       v @ _ -> f v        -- pattern of v == _ \\ patt2 \\ patt1


 inverse :: (Fractional a) => a @ { _ \\ 0.0} -> a
 inverse v = 1 / v

 The type supplement @{ _ \\ 0.0} would tell the compiler to check that
     the caller's case analysis should have evaluated the case for 0.0
     in a previous case branch before calling to inverse

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/4116#comment:9>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to