module HaskellCI.OptionsGrammar ( OptionsGrammar (..), (C.^^^), ) where import HaskellCI.Prelude import qualified Distribution.Compat.Lens as C import qualified Distribution.FieldGrammar as C import qualified Distribution.Fields as C import qualified Distribution.Types.VersionRange as C import HaskellCI.Newtypes class C.FieldGrammar p => OptionsGrammar p where metahelp :: String -> String -> p s a -> p s a metahelp _ _ = id help :: String -> p s a -> p s a help _ = id -- we treat range fields specially in options rangeField :: C.FieldName -> C.ALens' s C.VersionRange -> C.VersionRange -> p s C.VersionRange rangeField fn = C.optionalFieldDefAla fn Range instance OptionsGrammar C.ParsecFieldGrammar