-- -------------------------------------------------------------------- --
-- Default Extensions

:set -XRankNTypes
:set -XGADTs
:set -XTypeFamilies
:set -XTypeApplications
:set -XBangPatterns
:set -XMagicHash
:set -XMultiParamTypeClasses
:set -XPatternSynonyms
:set -XDataKinds
:set -XConstraintKinds
:set -XOverloadedStrings
:set -XNumericUnderscores
:set -XFlexibleContexts
:set -XScopedTypeVariables
:set -XOverloadedRecordDot
:set -XDuplicateRecordFields
:set -interactive-print=Text.Pretty.Simple.pPrint

-- -------------------------------------------------------------------- --
-- Warning flags for safe build
-- https://lexi-lambda.github.io/blog/2018/02/10/an-opinionated-guide-to-haskell-in-2018/

:set -Wall
:set -Wcompat
:set -Wincomplete-record-updates
:set -Wincomplete-uni-patterns
:set -Wredundant-constraints

-- -------------------------------------------------------------------- --
-- Util cmds

:def hlint const . return $ ":! hlint \"src\""
:def hoogle \s -> return $ ":! hoogle --color --count=15 " ++ show s
:def rg \s -> return $ ":! rg " ++ s
:def fzf const . pure $ ":! cat $HOME/.ghc/ghci_history | fzf --height 25"
