Type-level fmap for type-level functors.
Note: this name clashes with Data.Map.Lazy.Map from containers.
FMap is provided as a synonym to avoid this.
Example
data Example where Ex :: a -> Example -- Hide the type of examples to avoid brittleness in different GHC versionsdata AddMul :: Nat -> Nat -> Exp Nattype instance Eval (AddMul x y) = (x TL.+ y) TL.* (x TL.+ y):kind! Ex (Eval (Map (AddMul 2) '[0, 1, 2, 3, 4]) :: [Nat])Ex (Eval (Map (AddMul 2) '[0, 1, 2, 3, 4]) :: [Nat]) :: Example= Ex [4, 9, 16, 25, 36]
Instances10Eval, …
type Eval (Map f 'Nothing) = 'NothingDefined in first-class-families-0.8.1.0 · Fcf.Class.Functortype Eval (Map f '(x, a2)) = '(x, Eval (f a2))Defined in first-class-families-0.8.1.0 · Fcf.Class.Functortype Eval (Map f '(x, y, a2)) = '(x, y, Eval (f a2))Defined in first-class-families-0.8.1.0 · Fcf.Class.Functortype Eval (Map f '(x, y, z, a2)) = '(x, y, z, Eval (f a2))Defined in first-class-families-0.8.1.0 · Fcf.Class.Functortype Eval (Map f '(x, y, z, w, a2)) = '(x, y, z, w, Eval (f a2))Defined in first-class-families-0.8.1.0 · Fcf.Class.Functortype Eval (Map f '[]) = '[]Defined in first-class-families-0.8.1.0 · Fcf.Class.Functortype Eval (Map f ('Left x)) = 'Left xDefined in first-class-families-0.8.1.0 · Fcf.Class.Functortype Eval (Map f ('Right a3)) = 'Right (Eval (f a3))Defined in first-class-families-0.8.1.0 · Fcf.Class.Functortype Eval (Map f ('Just a3)) = 'Just (Eval (f a3))Defined in first-class-families-0.8.1.0 · Fcf.Class.Functortype Eval (Map f (a2 ': as)) = Eval (f a2) ': Eval (Map f as)Defined in first-class-families-0.8.1.0 · Fcf.Class.Functor