pandora-0.5.1: A box of patterns and paradigms
Safe HaskellSafe-Inferred
LanguageHaskell2010

Pandora.Paradigm.Structure.Ability.Zipper

Documentation

class Zippable (structure :: * -> *) Source #

Associated Types

type Breadcrumbs structure :: * -> * Source #

Instances

Instances details
Zippable List Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Some.List

Associated Types

type Breadcrumbs List :: Type -> Type Source #

Zippable (Construction Wye) Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Some.Binary

Associated Types

type Breadcrumbs (Construction Wye) :: Type -> Type Source #

Zippable (Construction Exactly) Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Some.Stream

Associated Types

type Breadcrumbs (Construction Exactly) :: Type -> Type Source #

Zippable (Construction Maybe) Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Some.List

Associated Types

type Breadcrumbs (Construction Maybe) :: Type -> Type Source #

Zippable (Comprehension Maybe) Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Some.List

Associated Types

type Breadcrumbs (Comprehension Maybe) :: Type -> Type Source #

type Zipper (structure :: * -> *) = (Exactly <:.:> Breadcrumbs structure) := (:*:) Source #

type Breadcrumbed structure t = (Zippable structure, Breadcrumbs structure ~ t) Source #

type family Fastenable structure rs where ... Source #

Equations

Fastenable structure (r ::: rs) = (Morphable (Rotate r) structure, Fastenable structure rs) 
Fastenable structure r = Morphable (Rotate r) structure 

Orphan instances

Semimonoidal (<--) (:*:) (:*:) t => Monoidal (<--) (-->) (:*:) (:*:) ((Exactly <:.:> t) := (:*:)) Source # 
Instance details

Methods

unit :: Proxy (:*:) -> (Unit (:*:) --> a) <-- ((Exactly <:.:> t) := (:*:)) a Source #

Semimonoidal (<--) (:*:) (:*:) t => Semimonoidal (<--) (:*:) (:*:) ((Exactly <:.:> t) := (:*:) :: Type -> Type) Source # 
Instance details

Methods

mult :: forall (a :: k) (b :: k). (((Exactly <:.:> t) := (:*:)) a :*: ((Exactly <:.:> t) := (:*:)) b) <-- ((Exactly <:.:> t) := (:*:)) (a :*: b) Source #

Impliable (Tape t a :: Type) Source # 
Instance details

Associated Types

type Arguments (Tape t a) = (args :: Type) Source #

Methods

imply :: Arguments (Tape t a) Source #

Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) t => Substructure ('Right :: a -> Wye a) (Tape t) Source # 
Instance details

Associated Types

type Available 'Right (Tape t) :: Type -> Type Source #

type Substance 'Right (Tape t) :: Type -> Type Source #

Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) t => Substructure ('Left :: a -> Wye a) (Tape t) Source # 
Instance details

Associated Types

type Available 'Left (Tape t) :: Type -> Type Source #

type Substance 'Left (Tape t) :: Type -> Type Source #

Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) t => Substructure ('Root :: a -> Segment a) (Tape t) Source # 
Instance details

Associated Types

type Available 'Root (Tape t) :: Type -> Type Source #

type Substance 'Root (Tape t) :: Type -> Type Source #

(Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) t, Semimonoidal (-->) (:*:) (:*:) t) => Substructure ('Right :: a -> Wye a) (Tape t <::> Tape t) Source # 
Instance details

Associated Types

type Available 'Right (Tape t <::> Tape t) :: Type -> Type Source #

type Substance 'Right (Tape t <::> Tape t) :: Type -> Type Source #

(Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) t, Semimonoidal (-->) (:*:) (:*:) t) => Substructure ('Left :: a -> Wye a) (Tape t <::> Tape t) Source # 
Instance details

Associated Types

type Available 'Left (Tape t <::> Tape t) :: Type -> Type Source #

type Substance 'Left (Tape t <::> Tape t) :: Type -> Type Source #

Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) t => Substructure ('Down :: a -> Vertical a) (Tape t <::> Tape t) Source # 
Instance details

Associated Types

type Available 'Down (Tape t <::> Tape t) :: Type -> Type Source #

type Substance 'Down (Tape t <::> Tape t) :: Type -> Type Source #

Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) t => Substructure ('Up :: a -> Vertical a) (Tape t <::> Tape t) Source # 
Instance details

Associated Types

type Available 'Up (Tape t <::> Tape t) :: Type -> Type Source #

type Substance 'Up (Tape t <::> Tape t) :: Type -> Type Source #