On Tue Feb 24 2015 at 12:47:07 PM
          Herbert Valerio Riedel <
hvr@gnu.org> wrote:
          
On
            2015-02-24 at 06:42:22 +0100, Erik de Castro Lopo wrote:
            > We currently have in the Data.Maybe module from base:
            >
            >      fromJust :: Maybe a -> a
            >
            > which newbies often find using hoogle or other search
            tools and is
            > a huge trap. *Every* usage of the above can be replaced
            by using
            >
            >       fromMaybe :: a -> Maybe a -> a
            >
            > which forces the user to provide a default value for
            the case where
            > the Maybe a is a Nothing.
            >
            > The idea would be to deprecate fromMaybe for 7.12 and
            remove it
            > completely later.
            
            I'm +1 for deprecating (or attach a warning pragma to)
            'fromJust' as
            I've been bit by 'fromJust' myself in the past, when I was
            still mixing
            up 'fromMaybe' and 'fromJust'. Nowadays I don't reach out
            for 'fromJust'
            anymore at all.
            
            However, I think it'll require a very long deprecation cycle
            before
            actually removing it from base, as 'fromJust' is officially
            part of
            Haskell 2010, and there's probably a lot of code out there
            using
            'fromJust'...
            
            Relatedly, I was thinking of a separate 'partial-functions'
            warning
            class, so we could annotate partial functions
            (head/last/...) in base,
            and have the associated warnings be tunable via a separate
            GHC -fwarn*
            flag. This could even be generalised to arbitrary
            warning-classes:
            
             {-# WARNING[partial] fromJust "Use 'fromMaybe' instead" #-}
            
            I'm sure we would come up with other useful
            warning-classes...
            
            
          
          
          
          This sounds like a great idea, which I'd support fully.
            The idea of letting people opt-out of partiality warnings
            somehow would IMO address the concerns here perfectly.
          
          
          Even though I'm strongly opposed to fromJust, I'm -1 on
            removing it any time soon due to ensuing breakage. I'm on
            the fence with a standard deprecation warning (since by what
            I just said we really *aren't* deprecating it), but a
            WARNING would be great.
          
          
          Michael