Hoogle Search
Within LTS Haskell 24.45 (ghc-9.10.3)
Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.
-
yesod-form Yesod.Form.Option Creates an OptionList from a List, using the PathPiece instance for the external value and a custom function for the user-facing value. PathPiece instances should provide suitable external values, since path pieces serve to be exposed through URLs or HTML anyway. Show/Read instances are avoided here since they could leak internal representations to forms, query params, javascript etc.
Example usage
data UserRole = URSalesTeam | URSalesHead | URTechTeam | URTechHead instance PathPiece UserDepartment where toPathPiece = \case URSalesTeam -> "sales-team" URSalesHead -> "sales-head" URTechTeam -> "tech-team" URTechHead -> "tech-head" fromPathPiece = \case "sales-team" -> Just URSalesTeam "sales-head" -> Just URSalesHead "tech-team" -> Just URTechTeam "tech-head" -> Just URTechHead _ -> Nothing userRoleOptions :: (MonadHandler m, RenderMessage (HandlerSite m) msg) => m (OptionList UserRole) userRoleOptions = optionsFromList' userRoles toMsg where userRoles = [URSalesTeam, URSalesHead, URTechTeam, URTechHead] toMsg :: UserRole -> Text toMsg = \case URSalesTeam -> "Sales Team" URSalesHead -> "Head of Sales Team" URTechTeam -> "Tech Team" URTechHead -> "Head of Tech Team"
userRoleOptions, will produce an OptionList with the following attributes:+----------------+----------------+--------------------+ | Internal Value | External Value | User-facing Value | +----------------+----------------+--------------------+ | URSalesTeam | sales-team | Sales Team | +----------------+----------------+--------------------+ | URSalesHead | sales-head | Head of Sales Team | +----------------+----------------+--------------------+ | URTechTeam | tech-team | Tech Team | +----------------+----------------+--------------------+ | URTechHead | tech-head | Head of Tech Team | +----------------+----------------+--------------------+
Note that the type constraint allows localizable messages in place of toMsg (see https://en.wikipedia.org/wiki/Yesod_(web_framework)#Localizable_messages). extensionsFromList :: [Extension] -> Extensionspandoc Text.Pandoc.Extensions No documentation available.
unsafeFromListN :: Sz1 -> [e] -> Vector DS emassiv Data.Massiv.Array.Unsafe O(n) - Convert a list of a known length to a delayed stream vector. Unsafe - This function is unsafe because it will allocate enough space in memory for n elements ahead of time, regardless of the actual size of the list. Supplying n that is too big will result in an asynchronous HeapOverflow exception.
sfromList :: [e] -> Vector DS emassiv Data.Massiv.Vector Convert a list to a delayed stream vector Related: fromList, fromListN, sfromListN
Examples
>>> sfromList ([] :: [Int]) Array DS Seq (Sz1 0) [ ] >>> sfromList ([1,2,3] :: [Int]) Array DS Seq (Sz1 3) [ 1, 2, 3 ]
sfromListN :: Sz1 -> [e] -> Vector DS emassiv Data.Massiv.Vector Convert a list to a delayed stream vector. Length of the resulting vector will be at most n. This version isn't really more efficient then sfromList, but there is unsafeFromListN Related: fromList, fromListN, sfromList
Examples
>>> sfromListN 10 [1 :: Int ..] Array DS Seq (Sz1 10) [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] >>> sfromListN 10 [1 :: Int .. 5] Array DS Seq (Sz1 5) [ 1, 2, 3, 4, 5 ]
unliftedArrayFromList :: PrimUnlifted a => [a] -> UnliftedArray aprimitive-unlifted Data.Primitive.Unlifted.Array No documentation available.
unliftedArrayFromListN :: PrimUnlifted a => Int -> [a] -> UnliftedArray aprimitive-unlifted Data.Primitive.Unlifted.Array No documentation available.
unliftedArrayFromList :: PrimUnlifted a => [a] -> UnliftedArray aprimitive-unlifted Data.Primitive.Unlifted.Array.ST No documentation available.
unliftedArrayFromListN :: PrimUnlifted a => Int -> [a] -> UnliftedArray aprimitive-unlifted Data.Primitive.Unlifted.Array.ST No documentation available.
smallUnliftedArrayFromList :: PrimUnlifted a => [a] -> SmallUnliftedArray aprimitive-unlifted Data.Primitive.Unlifted.SmallArray No documentation available.