{-# LANGUAGE DeriveFunctor #-} module Language.Haskell.Tools.Refactor.Builtin.ExtensionOrganizer.ExtMap where import Language.Haskell.TH.LanguageExtensions (Extension) import SrcLoc (SrcSpan) import qualified Data.Map.Strict as SMap (Map) infix 6 :||: infix 7 :&&: data LogicalRelation a = LVar a | Not (LogicalRelation a) | LogicalRelation a :&&: LogicalRelation a | LogicalRelation a :||: LogicalRelation a deriving (Eq, Show, Functor, Ord) type ExtMap = SMap.Map (LogicalRelation Extension) [SrcSpan]