Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
As a b
is represented at runtime as b
, but we know we can in fact
convert it into an a
with no loss of information. We can think of it has
having a *dual representation* as either a
or b
.
type As1 :: k -> Type -> Type
As b |
Instances
(Project a b, Eq a) => Eq (As a b) Source # | |
(Isomorphic a b, Num a) => Num (As a b) Source # | |
(Project a b, Ord a) => Ord (As a b) Source # | |
(Isomorphic a b, Real a) => Real (As a b) Source # | |
Defined in Iso.Deriving toRational :: As a b -> Rational # | |
(Project a b, Show a) => Show (As a b) Source # | |
(Isomorphic a b, Semigroup a) => Semigroup (As a b) Source # | |
(Isomorphic a b, Monoid a) => Monoid (As a b) Source # | |
Like As
for kind k -> Type
.
type As1 :: k1 -> (k2 -> Type) -> k2 -> Type
Instances
(forall x. Isomorphic (f x) (g x), Monad f) => Monad (As1 f g) Source # | |
(forall x. Isomorphic (f x) (g x), Functor f) => Functor (As1 f g) Source # | |
(forall x. Isomorphic (f x) (g x), Applicative f) => Applicative (As1 f g) Source # | |
(forall x. Isomorphic (f x) (g x), Alternative f) => Alternative (As1 f g) Source # | |
Like As
for kind k1 -> k2 -> Type
.
type As2 :: k1 -> (k2 -> k3 -> Type) -> k2 -> k3 -> Type
As2 (g a b) |