Safe Haskell | None |
---|---|
Language | Haskell2010 |
This module contains mainly the informative IsMedia
type class and
corresponding type classes for media lenses.
- class (NFData i, Show (MediaDescription i)) => IsMedia i
- data MediaDescription i where
- MkShowMedia :: Show (MediaDescription i) => MediaDescription i
- class (IsMedia (MediaFrom s), IsMedia (MediaTo t)) => HasMedia s t where
- type HasMedia' s = (IsMedia (MediaFrom s), HasMedia s s, MediaFrom s ~ MediaTo s)
- media' :: HasMedia' s => Lens' s (MediaFrom s)
- type HasMediaL s t a b = (IsMedia a, HasMedia s t, MediaFrom s ~ a, MediaTo t ~ b)
- type HasMediaL' s a = (IsMedia a, HasMedia s s, MediaFrom s ~ a, MediaTo s ~ a, MediaFrom s ~ MediaTo s)
- class (IsMedia (MediaFromE s), IsMedia (MediaToE t)) => EachMedia s t where
- type MediaFromE s
- type MediaToE t
- type EachMedia' s = (IsMedia (MediaFromE s), EachMedia s s, MediaFromE s ~ MediaToE s)
- eachMedia' :: EachMedia' s => Traversal' s (MediaFromE s)
- type EachMediaL s t a b = (IsMedia a, EachMedia s t, MediaFromE s ~ a, MediaToE t ~ b)
- type EachMediaL' s a = (IsMedia a, EachMedia s s, MediaFromE s ~ a, MediaToE s ~ a, MediaFromE s ~ MediaToE s)
Documentation
class (NFData i, Show (MediaDescription i)) => IsMedia i Source #
Very abstract class of media content types. The only universal feature is that it has a static description.
data MediaDescription i where Source #
A proxy type to display static media info via a Show
instance
MkShowMedia :: Show (MediaDescription i) => MediaDescription i |
(Typeable k t, KnownRate r, KnownChannelLayout * c) => Show (MediaDescription * (Audio r c (Raw k t))) # | |
class (IsMedia (MediaFrom s), IsMedia (MediaTo t)) => HasMedia s t where Source #
Types that contain an IsMedia
instance.
type HasMedia' s = (IsMedia (MediaFrom s), HasMedia s s, MediaFrom s ~ MediaTo s) Source #
Types that contain an IsMedia
instance.
type HasMediaL s t a b = (IsMedia a, HasMedia s t, MediaFrom s ~ a, MediaTo t ~ b) Source #
Types that contain an IsMedia
instance with the traditional lens-like type parameters
type HasMediaL' s a = (IsMedia a, HasMedia s s, MediaFrom s ~ a, MediaTo s ~ a, MediaFrom s ~ MediaTo s) Source #
Like HasMedia
but with the **simple** lens-like type parameters
class (IsMedia (MediaFromE s), IsMedia (MediaToE t)) => EachMedia s t where Source #
Types that contain zero or more IsMedia
instance.
type MediaFromE s Source #
The contained input media type, since the name MediaFrom
was taken
, this is named MediaFromE
where the E
is supposed to hint at the fact
that this class is called EachMedia
.
eachMedia :: Traversal s t (MediaFromE s) (MediaToE t) Source #
A Traversal
for the media within s
eachMedia :: HasMediaL s t (MediaFromE s) (MediaToE t) => Traversal s t (MediaFromE s) (MediaToE t) Source #
A Traversal
for the media within s
EachMedia a b => EachMedia (Discontinous a) (Discontinous b) Source # | |
type EachMedia' s = (IsMedia (MediaFromE s), EachMedia s s, MediaFromE s ~ MediaToE s) Source #
Types that contain zero or more IsMedia
instance.
eachMedia' :: EachMedia' s => Traversal' s (MediaFromE s) Source #
A simple Traversal
for the media within s
type EachMediaL s t a b = (IsMedia a, EachMedia s t, MediaFromE s ~ a, MediaToE t ~ b) Source #
Types that contain zero or more IsMedia
instance with the traditional lens-like type parameters
type EachMediaL' s a = (IsMedia a, EachMedia s s, MediaFromE s ~ a, MediaToE s ~ a, MediaFromE s ~ MediaToE s) Source #
Like EachMedia
but with the **simple** lens-like type parameters