pmap -is:exact -is:exact -package:plutarch-extra -is:exact

Applies a function to every value in the map, much like map.
O(n) . Map a function over a list of elements
Maps and filters the map, much like mapMaybe.
Similar to pmap, but allows elements to be thrown out. More precisely, for elements where the function argument returns PNothing, the corresponding element is removed, while for elements where the function argument returns PJust, the value is used in the result.
Given a projection from a type to another type which we have a PComparator for, construct a new PComparator.
A version of TMap parametrized by an interpretation f. This sort of parametrization may be familiar to users of vinyl records. TypeRepMap f is a more efficient replacement for DMap TypeRep f (where DMap is from the dependent-map package). Here is an example of using Maybe as an interpretation, with a comparison to TMap:
TMap              TypeRepMap Maybe
--------------       -------------------
Int  -> 5             Int  -> Just 5
Bool -> True          Bool -> Nothing
Char -> 'x'           Char -> Just 'x'
In fact, a TMap is defined as TypeRepMap Identity. Since TypeRep is poly-kinded, the interpretation can use any kind for the keys. For instance, we can use the Symbol kind to use TypeRepMap as an extensible record:
newtype Field name = F (FType name)

type family FType (name :: Symbol) :: Type
type instance FType "radius" = Double
type instance FType "border-color" = RGB
type instance FType "border-width" = Double

TypeRepMap Field
--------------------------------------
"radius"       -> F 5.7
"border-color" -> F (rgb 148 0 211)
"border-width" -> F 0.5
TypeRepMap is a heterogeneous data structure similar in its essence to Map with types as keys, where each value has the type of its key. In addition to that, each value is wrapped in an interpretation f. Here is an example of using Maybe as an interpretation, with a comparison to Map:
Map String (Maybe String)          TypeRepMap Maybe
---------------------------       ---------------------
"Int"  -> Just "5"                 Int  -> Just 5
"Bool" -> Just "True"              Bool -> Just True
"Char" -> Nothing                  Char -> Nothing
The runtime representation of TypeRepMap is an array, not a tree. This makes lookup significantly more efficient.