Pisałem szybko jakiś kod w Haskell i użyłem niebezpiecznej funkcji nie sumarycznej, a mianowicie fromJust
(gdzie spodziewam się wartości z wejścia). Zastanowię się później, jakiego rodzaju stylu obsługi błędów chcę użyć.Czy GHC może ostrzec o wykorzystaniu niebezpiecznych funkcji nie sumujących się?
Czy GHC pomoże mi upewnić się, że pozbyłem się wszystkich niebezpiecznych funkcji nie sumujących się (takich jak fromJust
lub head
, które mogą ulec awarii), daj mi ostrzeżenia, gdzie one są.
Wnioskowanie cząstkowe jest obecnie przedmiotem dyskusji przez twórców GHC. W międzyczasie najlepiej jest ukryć import tych funkcji i (aby się upewnić, że są naprawdę ukryte) przedefiniuj je samemu: 'fromJust =()' powinno wystarczyć. – dfeuer
Nawet po prostu zredefiniuj je w module, który importujesz bez zastrzeżeń jako "włączanie ostrzeżenia". Otrzymasz błąd niejednoznaczności wskazujący na miejsca, w których faktycznie używasz wersji Prelude (chyba, że się do tego zakwalifikujesz, jak w 'Prelude.fromJust'). Nie pomoże to jednak częściowym funkcjom, których używasz z kwalifikowanych importów innych modułów. – Ben