For example, with the attached test-package.conf file, we see that -fglasgow-exts in the first case works (because the package is loaded in the beginning), but in the second case it doesn't (because the package is loaded during GHCi).
This also applies to -fallow-overlapping-instances and friends, it appears. ghci -package-conf test-package.conf -package uni-options ___ ___ _ / _ \ /\ /\/ __(_) / /_\// /_/ / / | | GHC Interactive, version 5.04, for Haskell 98. / /_\\/ __ / /___| | http://www.haskell.org/ghc/ \____/\/ /_/\____/|_| Type :? for help. Loading package base ... linking ... done. Loading package haskell98 ... linking ... done. Loading package uni-options ... linking ... done. Prelude> let (a :: Int) = 2 Prelude> :quit Leaving GHCi. # ghci -package-conf test-package.conf ___ ___ _ / _ \ /\ /\/ __(_) / /_\// /_/ / / | | GHC Interactive, version 5.04, for Haskell 98. / /_\\/ __ / /___| | http://www.haskell.org/ghc/ \____/\/ /_/\____/|_| Type :? for help. Loading package base ... linking ... done. Loading package haskell98 ... linking ... done. Prelude> :set -package uni-options Loading package uni-options ... linking ... done. Prelude> let (a :: Int) = 2 <interactive>:1: Illegal signature in pattern: Int Use -fglasgow-exts to permit it Prelude>
test-package.conf
Description: Binary data