Safe Haskell | None |
---|---|
Language | Haskell2010 |
Ouroboros.Consensus.HardFork.Combinator.Embed.Unary
Description
Witness isomorphism between b
and HardForkBlock '[b]
Synopsis
- class Isomorphic f where
- project ∷ NoHardForks blk ⇒ f (HardForkBlock '[blk]) → f blk
- inject ∷ NoHardForks blk ⇒ f blk → f (HardForkBlock '[blk])
- inject' ∷ ∀ proxy f x y blk. (Isomorphic f, NoHardForks blk, Coercible x (f blk), Coercible y (f (HardForkBlock '[blk]))) ⇒ proxy (f blk) → x → y
- project' ∷ ∀ proxy f x y blk. (Isomorphic f, NoHardForks blk, Coercible x (f (HardForkBlock '[blk])), Coercible y (f blk)) ⇒ proxy (f blk) → x → y
- data ProjHardForkQuery b ∷ Type → Type where
- ProjHardForkQuery ∷ BlockQuery b result' → ProjHardForkQuery b (HardForkQueryResult '[b] result')
- injNestedCtxt ∷ NestedCtxt f blk a → NestedCtxt f (HardForkBlock '[blk]) a
- injQuery ∷ BlockQuery b result → BlockQuery (HardForkBlock '[b]) (HardForkQueryResult '[b] result)
- injQueryResult ∷ result → HardForkQueryResult '[b] result
- projNestedCtxt ∷ NestedCtxt f (HardForkBlock '[blk]) a → NestedCtxt f blk a
- projQuery ∷ BlockQuery (HardForkBlock '[b]) result → (∀ result'. (result :~: HardForkQueryResult '[b] result') → BlockQuery b result' → a) → a
- projQuery' ∷ BlockQuery (HardForkBlock '[b]) result → ProjHardForkQuery b result
- projQueryResult ∷ HardForkQueryResult '[b] result → result
- newtype I a = I a
- data Proxy (t ∷ k) = Proxy
Documentation
class Isomorphic f where Source #
Methods
project ∷ NoHardForks blk ⇒ f (HardForkBlock '[blk]) → f blk Source #
inject ∷ NoHardForks blk ⇒ f blk → f (HardForkBlock '[blk]) Source #
Instances
inject' ∷ ∀ proxy f x y blk. (Isomorphic f, NoHardForks blk, Coercible x (f blk), Coercible y (f (HardForkBlock '[blk]))) ⇒ proxy (f blk) → x → y Source #
project' ∷ ∀ proxy f x y blk. (Isomorphic f, NoHardForks blk, Coercible x (f (HardForkBlock '[blk])), Coercible y (f blk)) ⇒ proxy (f blk) → x → y Source #
Dependent types
data ProjHardForkQuery b ∷ Type → Type where Source #
Constructors
ProjHardForkQuery ∷ BlockQuery b result' → ProjHardForkQuery b (HardForkQueryResult '[b] result') |
injNestedCtxt ∷ NestedCtxt f blk a → NestedCtxt f (HardForkBlock '[blk]) a Source #
injQuery ∷ BlockQuery b result → BlockQuery (HardForkBlock '[b]) (HardForkQueryResult '[b] result) Source #
Inject BlockQuery
Not an instance of Isomorphic
because the types change.
injQueryResult ∷ result → HardForkQueryResult '[b] result Source #
projNestedCtxt ∷ NestedCtxt f (HardForkBlock '[blk]) a → NestedCtxt f blk a Source #
projQuery ∷ BlockQuery (HardForkBlock '[b]) result → (∀ result'. (result :~: HardForkQueryResult '[b] result') → BlockQuery b result' → a) → a Source #
Project BlockQuery
Not an instance of Isomorphic
because the types change.
projQuery' ∷ BlockQuery (HardForkBlock '[b]) result → ProjHardForkQuery b result Source #
projQueryResult ∷ HardForkQueryResult '[b] result → result Source #
Convenience exports
Constructors
I a |
Instances
Proxy
is a type that holds no data, but has a phantom parameter of
arbitrary type (or even kind). Its use is to provide type information, even
though there is no value available of that type (or it may be too costly to
create one).
Historically,
is a safer alternative to the
Proxy
:: Proxy
a
idiom.undefined
:: a
>>>
Proxy :: Proxy (Void, Int -> Int)
Proxy
Proxy can even hold types of higher kinds,
>>>
Proxy :: Proxy Either
Proxy
>>>
Proxy :: Proxy Functor
Proxy
>>>
Proxy :: Proxy complicatedStructure
Proxy
Constructors
Proxy |
Instances
Generic1 (Proxy ∷ k → Type) | Since: base-4.6.0.0 |
SemialignWithIndex Void (Proxy ∷ Type → Type) | |
Defined in Data.Semialign.Internal Methods ialignWith ∷ (Void → These a b → c) → Proxy a → Proxy b → Proxy c | |
ZipWithIndex Void (Proxy ∷ Type → Type) | |
ConstraintsB (Proxy ∷ (k → Type) → Type) | |
Defined in Barbies.Internal.ConstraintsB Associated Types type AllB c Proxy | |
FunctorB (Proxy ∷ (k → Type) → Type) | |
Defined in Barbies.Internal.FunctorB | |
ApplicativeB (Proxy ∷ (k → Type) → Type) | |
TraversableB (Proxy ∷ (k → Type) → Type) | |
Defined in Barbies.Internal.TraversableB Methods btraverse ∷ Applicative e ⇒ (∀ (a ∷ k0). f a → e (g a)) → Proxy f → e (Proxy g) | |
DistributiveB (Proxy ∷ (k → Type) → Type) | |
Defined in Barbies.Internal.DistributiveB | |
RepeatWithIndex Void (Proxy ∷ Type → Type) | |
Defined in Data.Semialign.Internal | |
Monad (Proxy ∷ Type → Type) | Since: base-4.7.0.0 |
Functor (Proxy ∷ Type → Type) | Since: base-4.7.0.0 |
Applicative (Proxy ∷ Type → Type) | Since: base-4.7.0.0 |
Foldable (Proxy ∷ Type → Type) | Since: base-4.7.0.0 |
Defined in Data.Foldable Methods fold ∷ Monoid m ⇒ Proxy m → m Source # foldMap ∷ Monoid m ⇒ (a → m) → Proxy a → m Source # foldMap' ∷ Monoid m ⇒ (a → m) → Proxy a → m Source # foldr ∷ (a → b → b) → b → Proxy a → b Source # foldr' ∷ (a → b → b) → b → Proxy a → b Source # foldl ∷ (b → a → b) → b → Proxy a → b Source # foldl' ∷ (b → a → b) → b → Proxy a → b Source # foldr1 ∷ (a → a → a) → Proxy a → a Source # foldl1 ∷ (a → a → a) → Proxy a → a Source # toList ∷ Proxy a → [a] Source # null ∷ Proxy a → Bool Source # length ∷ Proxy a → Int Source # elem ∷ Eq a ⇒ a → Proxy a → Bool Source # maximum ∷ Ord a ⇒ Proxy a → a Source # minimum ∷ Ord a ⇒ Proxy a → a Source # | |
Traversable (Proxy ∷ Type → Type) | Since: base-4.7.0.0 |
Contravariant (Proxy ∷ Type → Type) | |
Eq1 (Proxy ∷ Type → Type) | Since: base-4.9.0.0 |
Ord1 (Proxy ∷ Type → Type) | Since: base-4.9.0.0 |
Defined in Data.Functor.Classes | |
Read1 (Proxy ∷ Type → Type) | Since: base-4.9.0.0 |
Defined in Data.Functor.Classes | |
Show1 (Proxy ∷ Type → Type) | Since: base-4.9.0.0 |
Alternative (Proxy ∷ Type → Type) | Since: base-4.9.0.0 |
MonadPlus (Proxy ∷ Type → Type) | Since: base-4.9.0.0 |
NFData1 (Proxy ∷ Type → Type) | Since: deepseq-1.4.3.0 |
Defined in Control.DeepSeq | |
Hashable1 (Proxy ∷ Type → Type) | |
Defined in Data.Hashable.Class | |
Align (Proxy ∷ Type → Type) | |
Defined in Data.Semialign.Internal | |
Semialign (Proxy ∷ Type → Type) | |
Zip (Proxy ∷ Type → Type) | |
Representable (Proxy ∷ Type → Type) | |
Unalign (Proxy ∷ Type → Type) | |
Defined in Data.Semialign.Internal | |
Repeat (Proxy ∷ Type → Type) | |
Defined in Data.Semialign.Internal | |
Unzip (Proxy ∷ Type → Type) | |
Bounded (Proxy t) | Since: base-4.7.0.0 |
Enum (Proxy s) | Since: base-4.7.0.0 |
Defined in Data.Proxy Methods succ ∷ Proxy s → Proxy s Source # pred ∷ Proxy s → Proxy s Source # toEnum ∷ Int → Proxy s Source # fromEnum ∷ Proxy s → Int Source # enumFrom ∷ Proxy s → [Proxy s] Source # enumFromThen ∷ Proxy s → Proxy s → [Proxy s] Source # enumFromTo ∷ Proxy s → Proxy s → [Proxy s] Source # enumFromThenTo ∷ Proxy s → Proxy s → Proxy s → [Proxy s] Source # | |
Eq (Proxy s) | Since: base-4.7.0.0 |
Ord (Proxy s) | Since: base-4.7.0.0 |
Defined in Data.Proxy | |
Read (Proxy t) | Since: base-4.7.0.0 |
Show (Proxy s) | Since: base-4.7.0.0 |
Ix (Proxy s) | Since: base-4.7.0.0 |
Generic (Proxy t) | Since: base-4.6.0.0 |
Semigroup (Proxy s) | Since: base-4.9.0.0 |
Monoid (Proxy s) | Since: base-4.7.0.0 |
NFData (Proxy a) | Since: deepseq-1.4.0.0 |
Defined in Control.DeepSeq | |
Hashable (Proxy a) | |
Defined in Data.Hashable.Class | |
Serialise (Proxy a) | |
Defined in Codec.Serialise.Class | |
MonoFoldable (Proxy a) | |
Defined in Data.MonoTraversable Methods ofoldMap ∷ Monoid m ⇒ (Element (Proxy a) → m) → Proxy a → m ofoldr ∷ (Element (Proxy a) → b → b) → b → Proxy a → b ofoldl' ∷ (a0 → Element (Proxy a) → a0) → a0 → Proxy a → a0 otoList ∷ Proxy a → [Element (Proxy a)] oall ∷ (Element (Proxy a) → Bool) → Proxy a → Bool oany ∷ (Element (Proxy a) → Bool) → Proxy a → Bool ocompareLength ∷ Integral i ⇒ Proxy a → i → Ordering otraverse_ ∷ Applicative f ⇒ (Element (Proxy a) → f b) → Proxy a → f () ofor_ ∷ Applicative f ⇒ Proxy a → (Element (Proxy a) → f b) → f () omapM_ ∷ Applicative m ⇒ (Element (Proxy a) → m ()) → Proxy a → m () oforM_ ∷ Applicative m ⇒ Proxy a → (Element (Proxy a) → m ()) → m () ofoldlM ∷ Monad m ⇒ (a0 → Element (Proxy a) → m a0) → a0 → Proxy a → m a0 ofoldMap1Ex ∷ Semigroup m ⇒ (Element (Proxy a) → m) → Proxy a → m ofoldr1Ex ∷ (Element (Proxy a) → Element (Proxy a) → Element (Proxy a)) → Proxy a → Element (Proxy a) ofoldl1Ex' ∷ (Element (Proxy a) → Element (Proxy a) → Element (Proxy a)) → Proxy a → Element (Proxy a) headEx ∷ Proxy a → Element (Proxy a) lastEx ∷ Proxy a → Element (Proxy a) unsafeHead ∷ Proxy a → Element (Proxy a) unsafeLast ∷ Proxy a → Element (Proxy a) maximumByEx ∷ (Element (Proxy a) → Element (Proxy a) → Ordering) → Proxy a → Element (Proxy a) minimumByEx ∷ (Element (Proxy a) → Element (Proxy a) → Ordering) → Proxy a → Element (Proxy a) | |
MonoTraversable (Proxy a) | |
Defined in Data.MonoTraversable | |
MonoFunctor (Proxy a) | |
MonoPointed (Proxy a) | |
Defined in Data.MonoTraversable | |
type AllB (c ∷ k → Constraint) (Proxy ∷ (k → Type) → Type) | |
Defined in Barbies.Internal.ConstraintsB | |
type Rep1 (Proxy ∷ k → Type) | |
type Rep (Proxy ∷ Type → Type) | |
Defined in Data.Functor.Rep | |
type Rep (Proxy t) | |
type Element (Proxy a) | |
Defined in Data.MonoTraversable type Element (Proxy a) = a |