pmap -is:exact -package:liqwid-plutarch-extra -package:Cabal -package:ghc -package:plutarch -package:cardano-binary -package:plutarch-extra

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.