| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Circuit.Stamped
Description
Occurrence-tokens for values.
A Stamped value pairs an occurrence token (a stamp) with a payload.
The stamp is an observation receipt: an id, a timestamp, a line number,
or any other token that names the occurrence without changing the
payload's meaning.
Free theorem
The stamp is untouched by payload mapping:
stamp (fmap f s) = stamp s stamped (fmap f s) = f (stamped s)
>>>let s = Stamped 42 "hello">>>stamp (fmap reverse s)42>>>stamped (fmap reverse s)"olleh"
Documentation
A value a labelled by an occurrence token r.
Constructors
| Stamped | |
Instances
| Bifunctor Stamped Source # | |
| Functor (Stamped r) Source # | |
| Foldable (Stamped r) Source # | |
Defined in Circuit.Stamped Methods fold :: Monoid m => Stamped r m -> m # foldMap :: Monoid m => (a -> m) -> Stamped r a -> m # foldMap' :: Monoid m => (a -> m) -> Stamped r a -> m # foldr :: (a -> b -> b) -> b -> Stamped r a -> b # foldr' :: (a -> b -> b) -> b -> Stamped r a -> b # foldl :: (b -> a -> b) -> b -> Stamped r a -> b # foldl' :: (b -> a -> b) -> b -> Stamped r a -> b # foldr1 :: (a -> a -> a) -> Stamped r a -> a # foldl1 :: (a -> a -> a) -> Stamped r a -> a # toList :: Stamped r a -> [a] # length :: Stamped r a -> Int # elem :: Eq a => a -> Stamped r a -> Bool # maximum :: Ord a => Stamped r a -> a # minimum :: Ord a => Stamped r a -> a # | |
| Traversable (Stamped r) Source # | |
| (Eq r, Eq a) => Eq (Stamped r a) Source # | |
| (Show r, Show a) => Show (Stamped r a) Source # | |