Debugging a Safe Module
TL;DR: change -XSafe
to -XTrustworthy
.
I’ve found myself needing to add some trace statements to System/Environment.hs
.
The module is marked Safe
, so when you try to:
import Debug.Trace (trace)
you get the following error:
Debug.Trace: Can't be safely imported!
The module itself isn't safe.
I don’t know anything about Safe Haskell and I didn’t want to learn at the time.
Removing {-# LANGUAGE Safe #-}
made the Safe
modules depending on
System.Environment
(the module I was trying to debug) fail to compile,
so that wasn’t an option.
Turns out you can just bypass this by marking your module as Trustworthy
:
{-# LANGUAGE Trustworthy #-}
Well, TIL.