Hoogle Search
Within LTS Haskell 24.35 (ghc-9.10.3)
Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.
-
autodocodec Autodocodec.Codec Map a codec in both directions. This is not strictly dimap, because the decoding function is allowed to fail, but we can implement dimap using this function by using a decoding function that does not fail. Otherwise we would have to have another constructor here.
-
autodocodec Autodocodec.Codec -
autodocodec Autodocodec.Codec Map a codec's input and output types. This function allows you to have the parsing fail in a new way. If you use this function, then you will most likely want to add documentation about how not every value that the schema specifies will be accepted. This function is like BimapCodec except it also combines one level of a nested BimapCodecs.
Example usage
logLevelCodec :: JSONCodec LogLevel logLevelCodec = bimapCodec parseLogLevel renderLogLevel codec ? "Valid values include DEBUG, INFO, WARNING, ERROR." -
autodocodec Autodocodec.Codec Map both directions of a codec You can use this function to change the type of a codec as long as the two functions are inverses.
HasCodec instance for newtypes
A good use-case is implementing HasCodec for newtypes:newtype MyInt = MyInt { unMyInt :: Int } instance HasCodec MyInt where codec = dimapCodec MyInt unMyInt codec -
autodocodec Autodocodec.Codec Encode a HashMap, and decode any HashMap.
API Note
This is a forward-compatible version of HashMapCodec.hashMapCodec = HashMapCodec
keyMapCodec :: JSONCodec v -> JSONCodec (KeyMap v)autodocodec Autodocodec.Codec Encode a KeyMap, and decode any KeyMap. This chooses hashMapCodec or mapCodec based on ordered-keymap flag in aeson.
-
autodocodec Autodocodec.Codec Map the input part of a codec You can use this function if you only need to map the rendering-side of a codec. This function is probably only useful if the function you map does not change the codec type. WARNING: This can be used to produce a codec that does not roundtrip.
>>> toJSONVia (lmapCodec (*2) (codec :: JSONCodec Int)) 5 Number 10.0
-
autodocodec Autodocodec.Codec Map the output part of a codec You can use this function if you only need to map the parsing-side of a codec. This function is probably only useful if the function you map does not change the codec type. WARNING: This can be used to produce a codec that does not roundtrip.
>>> JSON.parseMaybe (parseJSONVia (rmapCodec (*2) codec)) (Number 5) :: Maybe Int Just 10
forkMapM :: (a -> IO b) -> [a] -> IO [Either SomeException b]monad-loops Control.Monad.Loops Like mapM, but run all the actions in parallel threads, collecting up the results and returning them all. Does not return until all actions finish.
forkMapM_ :: (a -> IO b) -> [a] -> IO [Maybe SomeException]monad-loops Control.Monad.Loops like forkMapM but without bothering to keep the return values