h& e      Safe-Inferred1 servant-queryparam-coreDrop the prefix of a .(:kind! DropPrefix "_userParams_category"+DropPrefix "_userParams_category" :: Symbol = "category"servant-queryparam-coreDrop leading non-underscores.0:kind! Eval (DropNonUnderscores ['a', 'a', '_'])3Eval (DropNonUnderscores ['a', 'a', '_']) :: [Char]= '['_']servant-queryparam-coreDrop leading underscores.-:kind! Eval (DropUnderscores ['_', '_', 'a'])0Eval (DropUnderscores ['_', '_', 'a']) :: [Char]= '['a']servant-queryparam-coreCheck types aren't equalservant-queryparam-coreType inequalityservant-queryparam-coreConvert a list of s to a .In this list, Chars go in a reverse order.#:kind! FromList1 ['a', 'b', 'c'] ""&FromList1 ['a', 'b', 'c'] "" :: Symbol= "cba"servant-queryparam-coreConvert a list of s to a .:kind! FromList ['a', '+', 'c']"FromList ['a', '+', 'c'] :: Symbol= "a+c" servant-queryparam-coreConvert a possibly unconsed  to a list of s. servant-queryparam-core Convert a  to a list of s.    Safe-Inferred1 ] servant-queryparam-coreType family for rewriting a   API to a regular servant API. This family is useful for defining instances of classes that extract information from the API type, such as classes from servant-swagger or servant-foreign. Typical use: instance SomeClass (UnRecordParam (RecordParam mod a :> api))) => SomeClass (RecordParam mod a :> api) where someMethod _ = someMethod (Proxy :: Proxy (UnRecordParam (RecordParam mod a :> api)) servant-queryparam-core"Append an element to a servant API servant-queryparam-core 7 uses fields in a record to represent query parameters.For each record field:>The modified record field name becomes a query parameter name.7The record field type becomes the query parameter type.For example, this API: type API = "users" :> (QueryParam "category" Category :> QueryParam' '[Required, Strict] "sort_by" SortBy :> QueryFlag "with_schema" :> QueryParams "filters" Filter :> Get '[JSON] User) can be written using records: data DropPrefixExp :: sym ->  sym type instance  (DropPrefixExp sym) =  sym data UserParams = UserParams { _userParams_category :: Maybe Category , _userParams_sort_by :: SortBy , _userParams_with_schema :: Bool , _userParams_filters :: [Filter] } type API = "users" :>  . DropPrefixExp UserParams :> Get '[JSON] User Here,  DropPrefixExp wraps a sym into Exp.The instance of  for DropPrefixExp sym drops the prefix of that sym via . is applied to the fields of  UserParams.The "_userParams_category"1 record field corresponds to the query parameter  "category".        !"3servant-queryparam-core-2.0.1-l5njGWtqQYLnoTHSRGanBServant.QueryParam.TypeLevelServant.QueryParam.Record3first-class-families-0.8.0.1-JfHCz6LQaAuFge3ERI6pGg Fcf.UtilsTyEqFcf.CoreExpEval DropPrefixDropNonUnderscoresDropUnderscoresNotTyEq FromList1FromListToList1ToList UnRecordParam RecordParam$fGHasLinkTYPEmodM1sub$fGHasLinkTYPEmodM1sub0$fGHasLinkTYPEmodM1sub1$fGHasLinkTYPEmodM1sub2$fGHasLinkkmodM1sub$fGHasLinkTYPEmod:*:sub$fGHasLinkkmodM1sub0$fHasLinkTYPE:>$fHasLinkTYPE:>0ghc-prim GHC.TypesSymbol NotTyEqImplChar ServantAppend