packages feed

pandora 0.2.1 → 0.2.2

raw patch · 29 files changed

+558/−226 lines, 29 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Pandora.Paradigm.Basis.Continuation: oblige :: Bindable t => t a -> Continuation r t a
- Pandora.Paradigm.Controlflow.Joint.Transformer: data (:>) t u a
- Pandora.Paradigm.Inventory.Environmental: Environmental :: (e -> a) -> Environmental e a
- Pandora.Paradigm.Inventory.Environmental: env :: Environmental e e
- Pandora.Paradigm.Inventory.Environmental: instance Pandora.Pattern.Functor.Applicative.Applicative (Pandora.Paradigm.Inventory.Environmental.Environmental e)
- Pandora.Paradigm.Inventory.Environmental: instance Pandora.Pattern.Functor.Bindable.Bindable (Pandora.Paradigm.Inventory.Environmental.Environmental e)
- Pandora.Paradigm.Inventory.Environmental: instance Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Inventory.Environmental.Environmental e)
- Pandora.Paradigm.Inventory.Environmental: instance Pandora.Pattern.Functor.Monad.Monad (Pandora.Paradigm.Inventory.Environmental.Environmental e)
- Pandora.Paradigm.Inventory.Environmental: instance Pandora.Pattern.Functor.Pointable.Pointable (Pandora.Paradigm.Inventory.Environmental.Environmental e)
- Pandora.Paradigm.Inventory.Environmental: local :: (e -> e) -> Environmental e a -> Environmental e a
- Pandora.Paradigm.Inventory.Environmental: newtype Environmental e a
- Pandora.Paradigm.Inventory.Optics: instance Pandora.Pattern.Functor.Adjoint.Adjoint (Pandora.Paradigm.Inventory.Storage.Storage s) (Pandora.Paradigm.Inventory.Stateful.Stateful s)
- Pandora.Paradigm.Inventory.Stateful: Stateful :: (((->) s :. (:*:) s) := a) -> Stateful s a
- Pandora.Paradigm.Inventory.Stateful: find :: (Pointable u, Avoidable u, Alternative u, Traversable t) => Predicate a -> t a -> u a
- Pandora.Paradigm.Inventory.Stateful: fold :: Traversable t => s -> (a -> s -> s) -> t a -> s
- Pandora.Paradigm.Inventory.Stateful: get :: Stateful s s
- Pandora.Paradigm.Inventory.Stateful: instance Pandora.Paradigm.Controlflow.Joint.Interpreted.Interpreted (Pandora.Paradigm.Inventory.Stateful.Stateful s)
- Pandora.Paradigm.Inventory.Stateful: instance Pandora.Paradigm.Controlflow.Joint.Transformer.Transformer (Pandora.Paradigm.Inventory.Stateful.Stateful s)
- Pandora.Paradigm.Inventory.Stateful: instance Pandora.Pattern.Functor.Applicative.Applicative (Pandora.Paradigm.Inventory.Stateful.Stateful s)
- Pandora.Paradigm.Inventory.Stateful: instance Pandora.Pattern.Functor.Bindable.Bindable (Pandora.Paradigm.Inventory.Stateful.Stateful s)
- Pandora.Paradigm.Inventory.Stateful: instance Pandora.Pattern.Functor.Bindable.Bindable u => Pandora.Pattern.Functor.Applicative.Applicative (Pandora.Paradigm.Controlflow.Joint.Schemes.TUV.TUV 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co ((->) s) u ((Pandora.Paradigm.Basis.Product.:*:) s))
- Pandora.Paradigm.Inventory.Stateful: instance Pandora.Pattern.Functor.Bindable.Bindable u => Pandora.Pattern.Functor.Bindable.Bindable (Pandora.Paradigm.Controlflow.Joint.Schemes.TUV.TUV 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co ((->) s) u ((Pandora.Paradigm.Basis.Product.:*:) s))
- Pandora.Paradigm.Inventory.Stateful: instance Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Inventory.Stateful.Stateful s)
- Pandora.Paradigm.Inventory.Stateful: instance Pandora.Pattern.Functor.Covariant.Covariant u => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Controlflow.Joint.Schemes.TUV.TUV 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co ((->) s) u ((Pandora.Paradigm.Basis.Product.:*:) s))
- Pandora.Paradigm.Inventory.Stateful: instance Pandora.Pattern.Functor.Monad.Monad (Pandora.Paradigm.Inventory.Stateful.Stateful s)
- Pandora.Paradigm.Inventory.Stateful: instance Pandora.Pattern.Functor.Monad.Monad u => Pandora.Pattern.Functor.Monad.Monad (Pandora.Paradigm.Controlflow.Joint.Schemes.TUV.TUV 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co ((->) s) u ((Pandora.Paradigm.Basis.Product.:*:) s))
- Pandora.Paradigm.Inventory.Stateful: instance Pandora.Pattern.Functor.Pointable.Pointable (Pandora.Paradigm.Inventory.Stateful.Stateful s)
- Pandora.Paradigm.Inventory.Stateful: instance Pandora.Pattern.Functor.Pointable.Pointable u => Pandora.Pattern.Functor.Pointable.Pointable (Pandora.Paradigm.Controlflow.Joint.Schemes.TUV.TUV 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co ((->) s) u ((Pandora.Paradigm.Basis.Product.:*:) s))
- Pandora.Paradigm.Inventory.Stateful: modify :: (s -> s) -> Stateful s ()
- Pandora.Paradigm.Inventory.Stateful: newtype Stateful s a
- Pandora.Paradigm.Inventory.Stateful: put :: s -> Stateful s ()
- Pandora.Paradigm.Inventory.Stateful: statefully :: s -> Stateful s a -> s :*: a
+ Pandora.Core.Transformation: infixr 0 ~>
+ Pandora.Paradigm.Basis.Conclusion: failure :: (Covariant t, Failable e t) => e -> t a
+ Pandora.Paradigm.Basis.Conclusion: type Failable e = Adaptable (Conclusion e)
+ Pandora.Paradigm.Basis.Continuation: instance (forall (u :: * -> *). Pandora.Pattern.Functor.Bindable.Bindable u) => Pandora.Pattern.Functor.Liftable.Liftable (Pandora.Paradigm.Basis.Continuation.Continuation r)
+ Pandora.Paradigm.Basis.Free: instance Pandora.Pattern.Functor.Liftable.Liftable Pandora.Paradigm.Basis.Free.Free
+ Pandora.Paradigm.Basis.Maybe: nothing :: (Covariant t, Optional t) => t a
+ Pandora.Paradigm.Basis.Maybe: type Optional = Adaptable Maybe
+ Pandora.Paradigm.Basis.Yoneda: instance Pandora.Pattern.Functor.Liftable.Liftable Pandora.Paradigm.Basis.Yoneda.Yoneda
+ Pandora.Paradigm.Controlflow.Joint.Adaptable: adapt :: Adaptable eff schema => eff ~> schema
+ Pandora.Paradigm.Controlflow.Joint.Adaptable: class Adaptable eff schema
+ Pandora.Paradigm.Controlflow.Joint.Adaptable: instance (Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable t (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema u (v Pandora.Paradigm.Controlflow.Joint.Transformer.:> (w Pandora.Paradigm.Controlflow.Joint.Transformer.:> (x Pandora.Paradigm.Controlflow.Joint.Transformer.:> (y Pandora.Paradigm.Controlflow.Joint.Transformer.:> (z Pandora.Paradigm.Controlflow.Joint.Transformer.:> (f Pandora.Paradigm.Controlflow.Joint.Transformer.:> h))))))), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable u (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema v (w Pandora.Paradigm.Controlflow.Joint.Transformer.:> (x Pandora.Paradigm.Controlflow.Joint.Transformer.:> (y Pandora.Paradigm.Controlflow.Joint.Transformer.:> (z Pandora.Paradigm.Controlflow.Joint.Transformer.:> (f Pandora.Paradigm.Controlflow.Joint.Transformer.:> h)))))), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable v (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema w (x Pandora.Paradigm.Controlflow.Joint.Transformer.:> (y Pandora.Paradigm.Controlflow.Joint.Transformer.:> (z Pandora.Paradigm.Controlflow.Joint.Transformer.:> (f Pandora.Paradigm.Controlflow.Joint.Transformer.:> h))))), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable w (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema x (y Pandora.Paradigm.Controlflow.Joint.Transformer.:> (z Pandora.Paradigm.Controlflow.Joint.Transformer.:> (f Pandora.Paradigm.Controlflow.Joint.Transformer.:> h)))), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable x (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema y (z Pandora.Paradigm.Controlflow.Joint.Transformer.:> (f Pandora.Paradigm.Controlflow.Joint.Transformer.:> h))), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable y (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema z (f Pandora.Paradigm.Controlflow.Joint.Transformer.:> h)), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable z (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema f h), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable f h) => Pandora.Paradigm.Controlflow.Joint.Adaptable.Adaptable h (t Pandora.Paradigm.Controlflow.Joint.Transformer.:> (u Pandora.Paradigm.Controlflow.Joint.Transformer.:> (v Pandora.Paradigm.Controlflow.Joint.Transformer.:> (w Pandora.Paradigm.Controlflow.Joint.Transformer.:> (x Pandora.Paradigm.Controlflow.Joint.Transformer.:> (y Pandora.Paradigm.Controlflow.Joint.Transformer.:> (z Pandora.Paradigm.Controlflow.Joint.Transformer.:> (f Pandora.Paradigm.Controlflow.Joint.Transformer.:> h))))))))
+ Pandora.Paradigm.Controlflow.Joint.Adaptable: instance (Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable t (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema u (v Pandora.Paradigm.Controlflow.Joint.Transformer.:> (w Pandora.Paradigm.Controlflow.Joint.Transformer.:> (x Pandora.Paradigm.Controlflow.Joint.Transformer.:> (y Pandora.Paradigm.Controlflow.Joint.Transformer.:> (z Pandora.Paradigm.Controlflow.Joint.Transformer.:> (f Pandora.Paradigm.Controlflow.Joint.Transformer.:> h))))))), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable u (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema v (w Pandora.Paradigm.Controlflow.Joint.Transformer.:> (x Pandora.Paradigm.Controlflow.Joint.Transformer.:> (y Pandora.Paradigm.Controlflow.Joint.Transformer.:> (z Pandora.Paradigm.Controlflow.Joint.Transformer.:> (f Pandora.Paradigm.Controlflow.Joint.Transformer.:> h)))))), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable v (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema w (x Pandora.Paradigm.Controlflow.Joint.Transformer.:> (y Pandora.Paradigm.Controlflow.Joint.Transformer.:> (z Pandora.Paradigm.Controlflow.Joint.Transformer.:> (f Pandora.Paradigm.Controlflow.Joint.Transformer.:> h))))), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable w (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema x (y Pandora.Paradigm.Controlflow.Joint.Transformer.:> (z Pandora.Paradigm.Controlflow.Joint.Transformer.:> (f Pandora.Paradigm.Controlflow.Joint.Transformer.:> h)))), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable x (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema y (z Pandora.Paradigm.Controlflow.Joint.Transformer.:> (f Pandora.Paradigm.Controlflow.Joint.Transformer.:> h))), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable y (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema z (f Pandora.Paradigm.Controlflow.Joint.Transformer.:> h)), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable z (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema f h), Pandora.Paradigm.Controlflow.Joint.Adaptable.Wrappable f h) => Pandora.Paradigm.Controlflow.Joint.Adaptable.Adaptable f (t Pandora.Paradigm.Controlflow.Joint.Transformer.:> (u Pandora.Paradigm.Controlflow.Joint.Transformer.:> (v Pandora.Paradigm.Controlflow.Joint.Transformer.:> (w Pandora.Paradigm.Controlflow.Joint.Transformer.:> (x Pandora.Paradigm.Controlflow.Joint.Transformer.:> (y Pandora.Paradigm.Controlflow.Joint.Transformer.:> (z Pandora.Paradigm.Controlflow.Joint.Transformer.:> (f Pandora.Paradigm.Controlflow.Joint.Transformer.:> h))))))))
+ Pandora.Paradigm.Controlflow.Joint.Adaptable: instance (Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable t (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema u (v Pandora.Paradigm.Controlflow.Joint.Transformer.:> (w Pandora.Paradigm.Controlflow.Joint.Transformer.:> (x Pandora.Paradigm.Controlflow.Joint.Transformer.:> (y Pandora.Paradigm.Controlflow.Joint.Transformer.:> (z Pandora.Paradigm.Controlflow.Joint.Transformer.:> f)))))), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable u (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema v (w Pandora.Paradigm.Controlflow.Joint.Transformer.:> (x Pandora.Paradigm.Controlflow.Joint.Transformer.:> (y Pandora.Paradigm.Controlflow.Joint.Transformer.:> (z Pandora.Paradigm.Controlflow.Joint.Transformer.:> f))))), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable v (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema w (x Pandora.Paradigm.Controlflow.Joint.Transformer.:> (y Pandora.Paradigm.Controlflow.Joint.Transformer.:> (z Pandora.Paradigm.Controlflow.Joint.Transformer.:> f)))), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable w (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema x (y Pandora.Paradigm.Controlflow.Joint.Transformer.:> (z Pandora.Paradigm.Controlflow.Joint.Transformer.:> f))), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable x (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema y (z Pandora.Paradigm.Controlflow.Joint.Transformer.:> f)), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable y (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema z f), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable z f) => Pandora.Paradigm.Controlflow.Joint.Adaptable.Adaptable f (t Pandora.Paradigm.Controlflow.Joint.Transformer.:> (u Pandora.Paradigm.Controlflow.Joint.Transformer.:> (v Pandora.Paradigm.Controlflow.Joint.Transformer.:> (w Pandora.Paradigm.Controlflow.Joint.Transformer.:> (x Pandora.Paradigm.Controlflow.Joint.Transformer.:> (y Pandora.Paradigm.Controlflow.Joint.Transformer.:> (z Pandora.Paradigm.Controlflow.Joint.Transformer.:> f)))))))
+ Pandora.Paradigm.Controlflow.Joint.Adaptable: instance (Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable t (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema u (v Pandora.Paradigm.Controlflow.Joint.Transformer.:> (w Pandora.Paradigm.Controlflow.Joint.Transformer.:> (x Pandora.Paradigm.Controlflow.Joint.Transformer.:> (y Pandora.Paradigm.Controlflow.Joint.Transformer.:> (z Pandora.Paradigm.Controlflow.Joint.Transformer.:> f)))))), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable u (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema v (w Pandora.Paradigm.Controlflow.Joint.Transformer.:> (x Pandora.Paradigm.Controlflow.Joint.Transformer.:> (y Pandora.Paradigm.Controlflow.Joint.Transformer.:> (z Pandora.Paradigm.Controlflow.Joint.Transformer.:> f))))), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable v (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema w (x Pandora.Paradigm.Controlflow.Joint.Transformer.:> (y Pandora.Paradigm.Controlflow.Joint.Transformer.:> (z Pandora.Paradigm.Controlflow.Joint.Transformer.:> f)))), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable w (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema x (y Pandora.Paradigm.Controlflow.Joint.Transformer.:> (z Pandora.Paradigm.Controlflow.Joint.Transformer.:> f))), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable x (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema y (z Pandora.Paradigm.Controlflow.Joint.Transformer.:> f)), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable y (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema z f), Pandora.Paradigm.Controlflow.Joint.Adaptable.Wrappable z f) => Pandora.Paradigm.Controlflow.Joint.Adaptable.Adaptable z (t Pandora.Paradigm.Controlflow.Joint.Transformer.:> (u Pandora.Paradigm.Controlflow.Joint.Transformer.:> (v Pandora.Paradigm.Controlflow.Joint.Transformer.:> (w Pandora.Paradigm.Controlflow.Joint.Transformer.:> (x Pandora.Paradigm.Controlflow.Joint.Transformer.:> (y Pandora.Paradigm.Controlflow.Joint.Transformer.:> (z Pandora.Paradigm.Controlflow.Joint.Transformer.:> f)))))))
+ Pandora.Paradigm.Controlflow.Joint.Adaptable: instance (Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable t (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema u (v Pandora.Paradigm.Controlflow.Joint.Transformer.:> (w Pandora.Paradigm.Controlflow.Joint.Transformer.:> (x Pandora.Paradigm.Controlflow.Joint.Transformer.:> (y Pandora.Paradigm.Controlflow.Joint.Transformer.:> z))))), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable u (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema v (w Pandora.Paradigm.Controlflow.Joint.Transformer.:> (x Pandora.Paradigm.Controlflow.Joint.Transformer.:> (y Pandora.Paradigm.Controlflow.Joint.Transformer.:> z)))), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable v (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema w (x Pandora.Paradigm.Controlflow.Joint.Transformer.:> (y Pandora.Paradigm.Controlflow.Joint.Transformer.:> z))), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable w (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema x (y Pandora.Paradigm.Controlflow.Joint.Transformer.:> z)), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable x (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema y z), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable y z) => Pandora.Paradigm.Controlflow.Joint.Adaptable.Adaptable z (t Pandora.Paradigm.Controlflow.Joint.Transformer.:> (u Pandora.Paradigm.Controlflow.Joint.Transformer.:> (v Pandora.Paradigm.Controlflow.Joint.Transformer.:> (w Pandora.Paradigm.Controlflow.Joint.Transformer.:> (x Pandora.Paradigm.Controlflow.Joint.Transformer.:> (y Pandora.Paradigm.Controlflow.Joint.Transformer.:> z))))))
+ Pandora.Paradigm.Controlflow.Joint.Adaptable: instance (Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable t (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema u (v Pandora.Paradigm.Controlflow.Joint.Transformer.:> (w Pandora.Paradigm.Controlflow.Joint.Transformer.:> (x Pandora.Paradigm.Controlflow.Joint.Transformer.:> (y Pandora.Paradigm.Controlflow.Joint.Transformer.:> z))))), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable u (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema v (w Pandora.Paradigm.Controlflow.Joint.Transformer.:> (x Pandora.Paradigm.Controlflow.Joint.Transformer.:> (y Pandora.Paradigm.Controlflow.Joint.Transformer.:> z)))), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable v (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema w (x Pandora.Paradigm.Controlflow.Joint.Transformer.:> (y Pandora.Paradigm.Controlflow.Joint.Transformer.:> z))), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable w (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema x (y Pandora.Paradigm.Controlflow.Joint.Transformer.:> z)), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable x (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema y z), Pandora.Paradigm.Controlflow.Joint.Adaptable.Wrappable y z) => Pandora.Paradigm.Controlflow.Joint.Adaptable.Adaptable y (t Pandora.Paradigm.Controlflow.Joint.Transformer.:> (u Pandora.Paradigm.Controlflow.Joint.Transformer.:> (v Pandora.Paradigm.Controlflow.Joint.Transformer.:> (w Pandora.Paradigm.Controlflow.Joint.Transformer.:> (x Pandora.Paradigm.Controlflow.Joint.Transformer.:> (y Pandora.Paradigm.Controlflow.Joint.Transformer.:> z))))))
+ Pandora.Paradigm.Controlflow.Joint.Adaptable: instance (Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable t (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema u (v Pandora.Paradigm.Controlflow.Joint.Transformer.:> (w Pandora.Paradigm.Controlflow.Joint.Transformer.:> (x Pandora.Paradigm.Controlflow.Joint.Transformer.:> y)))), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable u (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema v (w Pandora.Paradigm.Controlflow.Joint.Transformer.:> (x Pandora.Paradigm.Controlflow.Joint.Transformer.:> y))), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable v (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema w (x Pandora.Paradigm.Controlflow.Joint.Transformer.:> y)), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable w (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema x y), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable x y) => Pandora.Paradigm.Controlflow.Joint.Adaptable.Adaptable y (t Pandora.Paradigm.Controlflow.Joint.Transformer.:> (u Pandora.Paradigm.Controlflow.Joint.Transformer.:> (v Pandora.Paradigm.Controlflow.Joint.Transformer.:> (w Pandora.Paradigm.Controlflow.Joint.Transformer.:> (x Pandora.Paradigm.Controlflow.Joint.Transformer.:> y)))))
+ Pandora.Paradigm.Controlflow.Joint.Adaptable: instance (Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable t (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema u (v Pandora.Paradigm.Controlflow.Joint.Transformer.:> (w Pandora.Paradigm.Controlflow.Joint.Transformer.:> (x Pandora.Paradigm.Controlflow.Joint.Transformer.:> y)))), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable u (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema v (w Pandora.Paradigm.Controlflow.Joint.Transformer.:> (x Pandora.Paradigm.Controlflow.Joint.Transformer.:> y))), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable v (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema w (x Pandora.Paradigm.Controlflow.Joint.Transformer.:> y)), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable w (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema x y), Pandora.Paradigm.Controlflow.Joint.Adaptable.Wrappable x y) => Pandora.Paradigm.Controlflow.Joint.Adaptable.Adaptable x (t Pandora.Paradigm.Controlflow.Joint.Transformer.:> (u Pandora.Paradigm.Controlflow.Joint.Transformer.:> (v Pandora.Paradigm.Controlflow.Joint.Transformer.:> (w Pandora.Paradigm.Controlflow.Joint.Transformer.:> (x Pandora.Paradigm.Controlflow.Joint.Transformer.:> y)))))
+ Pandora.Paradigm.Controlflow.Joint.Adaptable: instance (Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable t (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema u (v Pandora.Paradigm.Controlflow.Joint.Transformer.:> (w Pandora.Paradigm.Controlflow.Joint.Transformer.:> x))), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable u (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema v (w Pandora.Paradigm.Controlflow.Joint.Transformer.:> x)), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable v (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema w x), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable w x) => Pandora.Paradigm.Controlflow.Joint.Adaptable.Adaptable x (t Pandora.Paradigm.Controlflow.Joint.Transformer.:> (u Pandora.Paradigm.Controlflow.Joint.Transformer.:> (v Pandora.Paradigm.Controlflow.Joint.Transformer.:> (w Pandora.Paradigm.Controlflow.Joint.Transformer.:> x))))
+ Pandora.Paradigm.Controlflow.Joint.Adaptable: instance (Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable t (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema u (v Pandora.Paradigm.Controlflow.Joint.Transformer.:> (w Pandora.Paradigm.Controlflow.Joint.Transformer.:> x))), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable u (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema v (w Pandora.Paradigm.Controlflow.Joint.Transformer.:> x)), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable v (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema w x), Pandora.Paradigm.Controlflow.Joint.Adaptable.Wrappable w x) => Pandora.Paradigm.Controlflow.Joint.Adaptable.Adaptable w (t Pandora.Paradigm.Controlflow.Joint.Transformer.:> (u Pandora.Paradigm.Controlflow.Joint.Transformer.:> (v Pandora.Paradigm.Controlflow.Joint.Transformer.:> (w Pandora.Paradigm.Controlflow.Joint.Transformer.:> x))))
+ Pandora.Paradigm.Controlflow.Joint.Adaptable: instance (Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable t (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema u (v Pandora.Paradigm.Controlflow.Joint.Transformer.:> w)), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable u (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema v w), Pandora.Paradigm.Controlflow.Joint.Adaptable.Wrappable v w) => Pandora.Paradigm.Controlflow.Joint.Adaptable.Adaptable v (t Pandora.Paradigm.Controlflow.Joint.Transformer.:> (u Pandora.Paradigm.Controlflow.Joint.Transformer.:> (v Pandora.Paradigm.Controlflow.Joint.Transformer.:> w)))
+ Pandora.Paradigm.Controlflow.Joint.Adaptable: instance (Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable t (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema u v), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable t (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema u (v Pandora.Paradigm.Controlflow.Joint.Transformer.:> w)), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable u (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema v w), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable v w) => Pandora.Paradigm.Controlflow.Joint.Adaptable.Adaptable w (t Pandora.Paradigm.Controlflow.Joint.Transformer.:> (u Pandora.Paradigm.Controlflow.Joint.Transformer.:> (v Pandora.Paradigm.Controlflow.Joint.Transformer.:> w)))
+ Pandora.Paradigm.Controlflow.Joint.Adaptable: instance (Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable t (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema u v), Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable u v) => Pandora.Paradigm.Controlflow.Joint.Adaptable.Adaptable v (t Pandora.Paradigm.Controlflow.Joint.Transformer.:> (u Pandora.Paradigm.Controlflow.Joint.Transformer.:> v))
+ Pandora.Paradigm.Controlflow.Joint.Adaptable: instance (Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable t (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema u v), Pandora.Paradigm.Controlflow.Joint.Adaptable.Wrappable u v) => Pandora.Paradigm.Controlflow.Joint.Adaptable.Adaptable u (t Pandora.Paradigm.Controlflow.Joint.Transformer.:> (u Pandora.Paradigm.Controlflow.Joint.Transformer.:> v))
+ Pandora.Paradigm.Controlflow.Joint.Adaptable: instance Pandora.Paradigm.Controlflow.Joint.Adaptable.Adaptable t t
+ Pandora.Paradigm.Controlflow.Joint.Adaptable: instance Pandora.Paradigm.Controlflow.Joint.Adaptable.Layable t u => Pandora.Paradigm.Controlflow.Joint.Adaptable.Adaptable u (t Pandora.Paradigm.Controlflow.Joint.Transformer.:> u)
+ Pandora.Paradigm.Controlflow.Joint.Adaptable: instance Pandora.Paradigm.Controlflow.Joint.Adaptable.Wrappable t u => Pandora.Paradigm.Controlflow.Joint.Adaptable.Adaptable t (t Pandora.Paradigm.Controlflow.Joint.Transformer.:> u)
+ Pandora.Paradigm.Controlflow.Joint.Transformer: T :: Schema t u a -> (:>) t u a
+ Pandora.Paradigm.Controlflow.Joint.Transformer: [trans] :: (:>) t u a -> Schema t u a
+ Pandora.Paradigm.Controlflow.Joint.Transformer: instance (Pandora.Paradigm.Controlflow.Joint.Interpreted.Interpreted (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema t u), Pandora.Paradigm.Controlflow.Joint.Transformer.Transformer t) => Pandora.Paradigm.Controlflow.Joint.Interpreted.Interpreted (t Pandora.Paradigm.Controlflow.Joint.Transformer.:> u)
+ Pandora.Paradigm.Controlflow.Joint.Transformer: instance Pandora.Pattern.Functor.Alternative.Alternative (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema t u) => Pandora.Pattern.Functor.Alternative.Alternative (t Pandora.Paradigm.Controlflow.Joint.Transformer.:> u)
+ Pandora.Paradigm.Controlflow.Joint.Transformer: instance Pandora.Pattern.Functor.Applicative.Applicative (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema t u) => Pandora.Pattern.Functor.Applicative.Applicative (t Pandora.Paradigm.Controlflow.Joint.Transformer.:> u)
+ Pandora.Paradigm.Controlflow.Joint.Transformer: instance Pandora.Pattern.Functor.Bindable.Bindable (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema t u) => Pandora.Pattern.Functor.Bindable.Bindable (t Pandora.Paradigm.Controlflow.Joint.Transformer.:> u)
+ Pandora.Paradigm.Controlflow.Joint.Transformer: instance Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema t u) => Pandora.Pattern.Functor.Covariant.Covariant (t Pandora.Paradigm.Controlflow.Joint.Transformer.:> u)
+ Pandora.Paradigm.Controlflow.Joint.Transformer: instance Pandora.Pattern.Functor.Distributive.Distributive (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema t u) => Pandora.Pattern.Functor.Distributive.Distributive (t Pandora.Paradigm.Controlflow.Joint.Transformer.:> u)
+ Pandora.Paradigm.Controlflow.Joint.Transformer: instance Pandora.Pattern.Functor.Extendable.Extendable (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema t u) => Pandora.Pattern.Functor.Extendable.Extendable (t Pandora.Paradigm.Controlflow.Joint.Transformer.:> u)
+ Pandora.Paradigm.Controlflow.Joint.Transformer: instance Pandora.Pattern.Functor.Extractable.Extractable (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema t u) => Pandora.Pattern.Functor.Extractable.Extractable (t Pandora.Paradigm.Controlflow.Joint.Transformer.:> u)
+ Pandora.Paradigm.Controlflow.Joint.Transformer: instance Pandora.Pattern.Functor.Pointable.Pointable (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema t u) => Pandora.Pattern.Functor.Pointable.Pointable (t Pandora.Paradigm.Controlflow.Joint.Transformer.:> u)
+ Pandora.Paradigm.Controlflow.Joint.Transformer: instance Pandora.Pattern.Functor.Traversable.Traversable (Pandora.Paradigm.Controlflow.Joint.Transformer.Schema t u) => Pandora.Pattern.Functor.Traversable.Traversable (t Pandora.Paradigm.Controlflow.Joint.Transformer.:> u)
+ Pandora.Paradigm.Controlflow.Joint.Transformer: newtype (:>) t u a
+ Pandora.Paradigm.Inventory.Accumulator: Accumulator :: (e :*: a) -> Accumulator e a
+ Pandora.Paradigm.Inventory.Accumulator: gather :: (Covariant t, Accumulated e t) => e -> t ()
+ Pandora.Paradigm.Inventory.Accumulator: instance (Pandora.Pattern.Functor.Pointable.Pointable u, Pandora.Pattern.Object.Monoid.Monoid e) => Pandora.Pattern.Functor.Pointable.Pointable (Pandora.Paradigm.Controlflow.Joint.Schemes.UT.UT 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co ((Pandora.Paradigm.Basis.Product.:*:) e) u)
+ Pandora.Paradigm.Inventory.Accumulator: instance (Pandora.Pattern.Object.Semigroup.Semigroup e, Pandora.Pattern.Functor.Applicative.Applicative u) => Pandora.Pattern.Functor.Applicative.Applicative (Pandora.Paradigm.Controlflow.Joint.Schemes.UT.UT 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co ((Pandora.Paradigm.Basis.Product.:*:) e) u)
+ Pandora.Paradigm.Inventory.Accumulator: instance (Pandora.Pattern.Object.Semigroup.Semigroup e, Pandora.Pattern.Functor.Pointable.Pointable u, Pandora.Pattern.Functor.Bindable.Bindable u) => Pandora.Pattern.Functor.Bindable.Bindable (Pandora.Paradigm.Controlflow.Joint.Schemes.UT.UT 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co ((Pandora.Paradigm.Basis.Product.:*:) e) u)
+ Pandora.Paradigm.Inventory.Accumulator: instance Pandora.Paradigm.Controlflow.Joint.Interpreted.Interpreted (Pandora.Paradigm.Inventory.Accumulator.Accumulator e)
+ Pandora.Paradigm.Inventory.Accumulator: instance Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Inventory.Accumulator.Accumulator e)
+ Pandora.Paradigm.Inventory.Accumulator: instance Pandora.Pattern.Functor.Covariant.Covariant u => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Controlflow.Joint.Schemes.UT.UT 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co ((Pandora.Paradigm.Basis.Product.:*:) e) u)
+ Pandora.Paradigm.Inventory.Accumulator: instance Pandora.Pattern.Object.Monoid.Monoid e => Pandora.Paradigm.Controlflow.Joint.Transformer.Transformer (Pandora.Paradigm.Inventory.Accumulator.Accumulator e)
+ Pandora.Paradigm.Inventory.Accumulator: instance Pandora.Pattern.Object.Monoid.Monoid e => Pandora.Pattern.Functor.Pointable.Pointable (Pandora.Paradigm.Inventory.Accumulator.Accumulator e)
+ Pandora.Paradigm.Inventory.Accumulator: instance Pandora.Pattern.Object.Semigroup.Semigroup e => Pandora.Pattern.Functor.Applicative.Applicative (Pandora.Paradigm.Inventory.Accumulator.Accumulator e)
+ Pandora.Paradigm.Inventory.Accumulator: instance Pandora.Pattern.Object.Semigroup.Semigroup e => Pandora.Pattern.Functor.Bindable.Bindable (Pandora.Paradigm.Inventory.Accumulator.Accumulator e)
+ Pandora.Paradigm.Inventory.Accumulator: newtype Accumulator e a
+ Pandora.Paradigm.Inventory.Accumulator: type Accumulated e t = Adaptable (Accumulator e) t
+ Pandora.Paradigm.Inventory.Environment: Environment :: (e -> a) -> Environment e a
+ Pandora.Paradigm.Inventory.Environment: env :: (Covariant t, Configured e t) => t e
+ Pandora.Paradigm.Inventory.Environment: instance (Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Pointable.Pointable u) => Pandora.Pattern.Functor.Pointable.Pointable (Pandora.Paradigm.Controlflow.Joint.Schemes.TU.TU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co ((->) e) u)
+ Pandora.Paradigm.Inventory.Environment: instance Pandora.Paradigm.Controlflow.Joint.Interpreted.Interpreted (Pandora.Paradigm.Inventory.Environment.Environment e)
+ Pandora.Paradigm.Inventory.Environment: instance Pandora.Paradigm.Controlflow.Joint.Transformer.Transformer (Pandora.Paradigm.Inventory.Environment.Environment e)
+ Pandora.Paradigm.Inventory.Environment: instance Pandora.Pattern.Functor.Applicative.Applicative (Pandora.Paradigm.Inventory.Environment.Environment e)
+ Pandora.Paradigm.Inventory.Environment: instance Pandora.Pattern.Functor.Applicative.Applicative u => Pandora.Pattern.Functor.Applicative.Applicative (Pandora.Paradigm.Controlflow.Joint.Schemes.TU.TU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co ((->) e) u)
+ Pandora.Paradigm.Inventory.Environment: instance Pandora.Pattern.Functor.Bindable.Bindable (Pandora.Paradigm.Inventory.Environment.Environment e)
+ Pandora.Paradigm.Inventory.Environment: instance Pandora.Pattern.Functor.Bindable.Bindable u => Pandora.Pattern.Functor.Bindable.Bindable (Pandora.Paradigm.Controlflow.Joint.Schemes.TU.TU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co ((->) e) u)
+ Pandora.Paradigm.Inventory.Environment: instance Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Inventory.Environment.Environment e)
+ Pandora.Paradigm.Inventory.Environment: instance Pandora.Pattern.Functor.Covariant.Covariant u => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Controlflow.Joint.Schemes.TU.TU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co ((->) e) u)
+ Pandora.Paradigm.Inventory.Environment: instance Pandora.Pattern.Functor.Distributive.Distributive (Pandora.Paradigm.Inventory.Environment.Environment e)
+ Pandora.Paradigm.Inventory.Environment: instance Pandora.Pattern.Functor.Monad.Monad (Pandora.Paradigm.Inventory.Environment.Environment e)
+ Pandora.Paradigm.Inventory.Environment: instance Pandora.Pattern.Functor.Pointable.Pointable (Pandora.Paradigm.Inventory.Environment.Environment e)
+ Pandora.Paradigm.Inventory.Environment: newtype Environment e a
+ Pandora.Paradigm.Inventory.Environment: type Configured e = Adaptable (Environment e)
+ Pandora.Paradigm.Inventory.Optics: instance Pandora.Pattern.Functor.Adjoint.Adjoint (Pandora.Paradigm.Inventory.Storage.Storage s) (Pandora.Paradigm.Inventory.State.State s)
+ Pandora.Paradigm.Inventory.State: State :: (((->) s :. (:*:) s) := a) -> State s a
+ Pandora.Paradigm.Inventory.State: current :: (Covariant t, Stateful s t) => t s
+ Pandora.Paradigm.Inventory.State: find :: (Pointable u, Avoidable u, Alternative u, Traversable t) => Predicate a -> t a -> u a
+ Pandora.Paradigm.Inventory.State: fold :: Traversable t => s -> (a -> s -> s) -> t a -> s
+ Pandora.Paradigm.Inventory.State: instance Pandora.Paradigm.Controlflow.Joint.Interpreted.Interpreted (Pandora.Paradigm.Inventory.State.State s)
+ Pandora.Paradigm.Inventory.State: instance Pandora.Paradigm.Controlflow.Joint.Transformer.Transformer (Pandora.Paradigm.Inventory.State.State s)
+ Pandora.Paradigm.Inventory.State: instance Pandora.Pattern.Functor.Applicative.Applicative (Pandora.Paradigm.Inventory.State.State s)
+ Pandora.Paradigm.Inventory.State: instance Pandora.Pattern.Functor.Bindable.Bindable (Pandora.Paradigm.Inventory.State.State s)
+ Pandora.Paradigm.Inventory.State: instance Pandora.Pattern.Functor.Bindable.Bindable u => Pandora.Pattern.Functor.Applicative.Applicative (Pandora.Paradigm.Controlflow.Joint.Schemes.TUV.TUV 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co ((->) s) u ((Pandora.Paradigm.Basis.Product.:*:) s))
+ Pandora.Paradigm.Inventory.State: instance Pandora.Pattern.Functor.Bindable.Bindable u => Pandora.Pattern.Functor.Bindable.Bindable (Pandora.Paradigm.Controlflow.Joint.Schemes.TUV.TUV 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co ((->) s) u ((Pandora.Paradigm.Basis.Product.:*:) s))
+ Pandora.Paradigm.Inventory.State: instance Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Inventory.State.State s)
+ Pandora.Paradigm.Inventory.State: instance Pandora.Pattern.Functor.Covariant.Covariant u => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Controlflow.Joint.Schemes.TUV.TUV 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co ((->) s) u ((Pandora.Paradigm.Basis.Product.:*:) s))
+ Pandora.Paradigm.Inventory.State: instance Pandora.Pattern.Functor.Monad.Monad (Pandora.Paradigm.Inventory.State.State s)
+ Pandora.Paradigm.Inventory.State: instance Pandora.Pattern.Functor.Monad.Monad u => Pandora.Pattern.Functor.Monad.Monad (Pandora.Paradigm.Controlflow.Joint.Schemes.TUV.TUV 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co ((->) s) u ((Pandora.Paradigm.Basis.Product.:*:) s))
+ Pandora.Paradigm.Inventory.State: instance Pandora.Pattern.Functor.Pointable.Pointable (Pandora.Paradigm.Inventory.State.State s)
+ Pandora.Paradigm.Inventory.State: instance Pandora.Pattern.Functor.Pointable.Pointable u => Pandora.Pattern.Functor.Pointable.Pointable (Pandora.Paradigm.Controlflow.Joint.Schemes.TUV.TUV 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co ((->) s) u ((Pandora.Paradigm.Basis.Product.:*:) s))
+ Pandora.Paradigm.Inventory.State: modify :: (Covariant t, Stateful s t) => (s -> s) -> t ()
+ Pandora.Paradigm.Inventory.State: newtype State s a
+ Pandora.Paradigm.Inventory.State: replace :: (Covariant t, Stateful s t) => s -> t ()
+ Pandora.Paradigm.Inventory.State: type Stateful s = Adaptable (State s)
+ Pandora.Paradigm.Structure.Cartesian: (-:*:-) :: Cartesian t => t a -> t b -> t (a :*: b)
- Pandora.Core.Functor: infixr 0 :=
+ Pandora.Core.Functor: infixr 0 <-|
- Pandora.Paradigm.Basis.Continuation: reset :: (Bindable t, Pointable t) => Continuation r t r -> Continuation s t r
+ Pandora.Paradigm.Basis.Continuation: reset :: (forall u. Bindable u, Bindable t, Pointable t) => Continuation r t r -> Continuation s t r
- Pandora.Paradigm.Basis.Twister: coiterate :: Covariant t => (a -> t a) -> a -> Twister t a
+ Pandora.Paradigm.Basis.Twister: coiterate :: Covariant t => (a |-> t) -> a -> Twister t a
- Pandora.Paradigm.Controlflow.Joint.Transformer: lay :: (Transformer t, Covariant u) => u ~> Schema t u
+ Pandora.Paradigm.Controlflow.Joint.Transformer: lay :: (Transformer t, Covariant u) => u ~> (t :> u)
- Pandora.Paradigm.Controlflow.Joint.Transformer: wrap :: (Transformer t, Pointable u) => t ~> Schema t u
+ Pandora.Paradigm.Controlflow.Joint.Transformer: wrap :: (Transformer t, Pointable u) => t ~> (t :> u)
- Pandora.Pattern.Functor.Covariant: loeb :: Covariant t => t (t a -> a) -> t a
+ Pandora.Pattern.Functor.Covariant: loeb :: Covariant t => t (a <-| t) -> t a
- Pandora.Pattern.Functor.Distributive: (>>-) :: (Distributive u, Covariant t) => t a -> (a -> u b) -> (u :. t) := b
+ Pandora.Pattern.Functor.Distributive: (>>-) :: (Distributive t, Covariant u) => u a -> (a -> t b) -> (t :. u) := b
- Pandora.Pattern.Functor.Distributive: (>>>-) :: (Distributive u, Covariant t, Covariant v) => ((t :. v) := a) -> (a -> u b) -> (u :. (t :. v)) := b
+ Pandora.Pattern.Functor.Distributive: (>>>-) :: (Distributive t, Covariant u, Covariant v) => ((u :. v) := a) -> (a -> t b) -> (t :. (u :. v)) := b
- Pandora.Pattern.Functor.Distributive: (>>>>-) :: (Distributive u, Covariant t, Covariant v, Covariant w) => ((t :. (v :. w)) := a) -> (a -> u b) -> (u :. (t :. (v :. w))) := b
+ Pandora.Pattern.Functor.Distributive: (>>>>-) :: (Distributive t, Covariant u, Covariant v, Covariant w) => ((u :. (v :. w)) := a) -> (a -> t b) -> (t :. (u :. (v :. w))) := b
- Pandora.Pattern.Functor.Distributive: (>>>>>-) :: (Distributive u, Covariant t, Covariant v, Covariant w, Covariant j) => ((t :. (v :. (w :. j))) := a) -> (a -> u b) -> (u :. (t :. (v :. (w :. j)))) := b
+ Pandora.Pattern.Functor.Distributive: (>>>>>-) :: (Distributive t, Covariant u, Covariant v, Covariant w, Covariant j) => ((u :. (v :. (w :. j))) := a) -> (a -> t b) -> (t :. (u :. (v :. (w :. j)))) := b
- Pandora.Pattern.Functor.Distributive: class Covariant u => Distributive u
+ Pandora.Pattern.Functor.Distributive: class Covariant t => Distributive t
- Pandora.Pattern.Functor.Distributive: collect :: (Distributive u, Covariant t) => (a -> u b) -> t a -> (u :. t) := b
+ Pandora.Pattern.Functor.Distributive: collect :: (Distributive t, Covariant u) => (a -> t b) -> u a -> (t :. u) := b
- Pandora.Pattern.Functor.Distributive: distribute :: (Distributive u, Covariant t) => ((t :. u) := a) -> (u :. t) := a
+ Pandora.Pattern.Functor.Distributive: distribute :: (Distributive t, Covariant u) => ((u :. t) := a) -> (t :. u) := a
- Pandora.Pattern.Functor.Extractable: extract :: Extractable t => t a -> a
+ Pandora.Pattern.Functor.Extractable: extract :: Extractable t => a <-| t
- Pandora.Pattern.Functor.Pointable: point :: Pointable t => a -> t a
+ Pandora.Pattern.Functor.Pointable: point :: Pointable t => a |-> t
- Pandora.Pattern.Functor.Representable: (<#>) :: Representable t => Representation t -> t a -> a
+ Pandora.Pattern.Functor.Representable: (<#>) :: Representable t => Representation t -> a <-| t
- Pandora.Pattern.Functor.Traversable: sequence :: (Traversable t, Pointable u, Applicative u) => (t :. u) a -> (u :. t) := a
+ Pandora.Pattern.Functor.Traversable: sequence :: (Traversable t, Pointable u, Applicative u) => ((t :. u) := a) -> (u :. t) := a

Files

CHANGELOG.md view
@@ -95,7 +95,7 @@ * Remove `a` parameter from `Layout` to be able to use natural transformations in methods * Return `filter` method to `Stack` data structure * Rename `unwrap` to `untwist` method in `Twister` module-* Rename `composition` to `unwrap` and `Outline` to `Primary` in `Composition` typeclass+* Rename `composition` to `unwrap` and `Outline` to `Primary` in `Composition` type class * Rename `equip` to `wrap` and `Layout` to `Schema` in `Transformer` typeclass * Make `Composition` a superclass for `Transformer` typeclass * Move all `Junction` modules to `Pattern` submodule except `Kan`@@ -125,3 +125,20 @@ * Create `:#` type synonymous for `Tagged` datatype * Remove `untag` in favor of `extract` method * Rename `Tagged` constructor of `Tagged` to `Tag`++# 0.2.2+* Change types of `lay` and `wrap` methods of `Transformer` class+* Define `Adaptable` type class for fitting effects in schemas+* Define `Failable` and `failure` for adaptable `Conclusion`+* Define `Optional` and `nothing` for adaptable `Maybe`+* Rename `Stateful` to `State`, `get` to `current`, `put` to `replace`+* Define `Stateful` adaptable constraint and adapt `get`, `modify` and `put`+* Rename `Environmental` to `Environment`+* Make `env` adaptable effect and remove `local`+* Define `Accumulator` effect and it's adaptable `gather` method+* Define `|->` (Coalgebra) and `<-|` (Algebra) type synonyms+* Remove `oblige` in favor of `Liftable` instance of `Continuation`+* Remove `environmentally` in favor of `Interpreted` instance for `Environment`+* Remove `statefully` in favor of `Interpreted` instance for `State`++# 0.2.3
Pandora/Core/Functor.hs view
@@ -1,17 +1,26 @@ module Pandora.Core.Functor where +infixr 0 :=, <-|, |->+infixr 1 .:, :.+infixr 2 ::|:., ::|.:, ::|::+ data Variant = Co | Contra -infixr 1 :.+-- | Parameter application+type (:=) t a = t a++-- | Functors composition type (:.) t u a = t (u a) -infixr 1 .:+-- | Flipped functors composition type (.:) t u a = u (t a) -infixr 0 :=-type (:=) t a = t a+-- | Coalgebra's type operator+type (|->) a t = a -> t a -infixr 2 ::|:., ::|.:, ::|::+-- | Algebra's type operator+type (<-|) a t = t a -> a+ type (::|:.) p a b = p (p a b) b type (::|.:) p a b = p a (p a b) type (::|::) p a b = p (p a b) (p a b)
Pandora/Core/Transformation.hs view
@@ -2,6 +2,8 @@  import Pandora.Pattern.Functor.Covariant (Covariant) +infixr 0 ~>+ type Natural t u = forall a . (Covariant t, Covariant u) => t a -> u a  type (~>) t u = Natural t u
Pandora/Paradigm/Basis/Conclusion.hs view
@@ -1,9 +1,10 @@-module Pandora.Paradigm.Basis.Conclusion (Conclusion (..), conclusion, fail) where+module Pandora.Paradigm.Basis.Conclusion (Conclusion (..), Failable, conclusion, fail, failure) where  import Pandora.Core.Functor (Variant (Co)) import Pandora.Core.Morphism ((.)) import Pandora.Paradigm.Controlflow.Joint.Interpreted (Interpreted (Primary, unwrap))-import Pandora.Paradigm.Controlflow.Joint.Transformer (Transformer (Schema, lay, wrap))+import Pandora.Paradigm.Controlflow.Joint.Transformer (Transformer (Schema, lay, wrap), (:>)(T))+import Pandora.Paradigm.Controlflow.Joint.Adaptable (Adaptable (adapt)) import Pandora.Paradigm.Controlflow.Joint.Schemes.UT (UT (UT)) import Pandora.Pattern.Functor.Covariant (Covariant ((<$>), (<$$>))) import Pandora.Pattern.Functor.Pointable (Pointable (point))@@ -44,29 +45,6 @@  instance Monad (Conclusion e) where -instance Interpreted (Conclusion e) where-	type Primary (Conclusion e) a = Conclusion e a-	unwrap x = x--instance Transformer (Conclusion e) where-	type Schema (Conclusion e) u = UT 'Co 'Co (Conclusion e) u-	lay x = UT $ Success <$> x-	wrap x = UT . point $ x--instance Covariant u => Covariant (UT 'Co 'Co (Conclusion e) u) where-	f <$> UT x = UT $ f <$$> x--instance Applicative u => Applicative (UT 'Co 'Co (Conclusion e) u) where-	UT f <*> UT x = UT $ apply <$> f <*> x--instance Pointable u => Pointable (UT 'Co 'Co (Conclusion e) u) where-	point = UT . point . point--instance (Pointable u, Bindable u) => Bindable (UT 'Co 'Co (Conclusion e) u) where-	UT x >>= f = UT $ x >>= conclusion (point . Failure) (unwrap . f)--instance Monad u => Monad (UT 'Co 'Co (Conclusion e) u) where- instance (Setoid e, Setoid a) => Setoid (Conclusion e a) where 	Success x == Success y = x == y 	Failure x == Failure y = x == y@@ -91,3 +69,31 @@ fail :: (e -> r) -> Conclusion e a -> Conclusion r a fail f (Failure x) = Failure $ f x fail _ (Success y) = Success y++instance Interpreted (Conclusion e) where+	type Primary (Conclusion e) a = Conclusion e a+	unwrap x = x++instance Transformer (Conclusion e) where+	type Schema (Conclusion e) u = UT 'Co 'Co (Conclusion e) u+	lay x = T . UT $ Success <$> x+	wrap x = T . UT . point $ x++type Failable e = Adaptable (Conclusion e)++instance Covariant u => Covariant (UT 'Co 'Co (Conclusion e) u) where+	f <$> UT x = UT $ f <$$> x++instance Applicative u => Applicative (UT 'Co 'Co (Conclusion e) u) where+	UT f <*> UT x = UT $ apply <$> f <*> x++instance Pointable u => Pointable (UT 'Co 'Co (Conclusion e) u) where+	point = UT . point . point++instance (Pointable u, Bindable u) => Bindable (UT 'Co 'Co (Conclusion e) u) where+	UT x >>= f = UT $ x >>= conclusion (point . Failure) (unwrap . f)++instance Monad u => Monad (UT 'Co 'Co (Conclusion e) u) where++failure :: (Covariant t, Failable e t) => e -> t a+failure = adapt . Failure
Pandora/Paradigm/Basis/Continuation.hs view
@@ -1,4 +1,4 @@-module Pandora.Paradigm.Basis.Continuation (Continuation (..), oblige, cwcc, reset, shift) where+module Pandora.Paradigm.Basis.Continuation (Continuation (..), cwcc, reset, shift) where  import Pandora.Core.Functor (type (:.), type (:=), type (::|:.)) import Pandora.Core.Morphism ((.), (!), (%))@@ -7,6 +7,7 @@ import Pandora.Pattern.Functor.Applicative (Applicative ((<*>))) import Pandora.Pattern.Functor.Bindable (Bindable ((>>=))) import Pandora.Pattern.Functor.Monad (Monad)+import Pandora.Pattern.Functor.Liftable (Liftable (lift)) import Pandora.Pattern.Functor.Divariant (($))  newtype Continuation r t a = Continuation { continue :: (->) ::|:. a :. t := r }@@ -25,17 +26,16 @@  instance Monad t => Monad (Continuation r t) where --- | Make any bindable action continue-oblige :: Bindable t => t a -> Continuation r t a-oblige x = Continuation (x >>=)+instance (forall u . Bindable u) => Liftable (Continuation r) where+	lift = Continuation . (>>=)  -- | Call with current continuation cwcc :: ((a -> Continuation r t b) -> Continuation r t a) -> Continuation r t a cwcc f = Continuation $ \g -> continue % g . f $ Continuation . (!) . g  -- | Delimit the continuation of any 'shift'-reset :: (Bindable t, Pointable t) => Continuation r t r -> Continuation s t r-reset = oblige . continue % point+reset :: (forall u . Bindable u, Bindable t, Pointable t) => Continuation r t r -> Continuation s t r+reset = lift . continue % point  -- | Capture the continuation up to the nearest enclosing 'reset' and pass it shift :: Pointable t => ((a -> t r) -> Continuation r t r) -> Continuation r t a
Pandora/Paradigm/Basis/Free.hs view
@@ -8,6 +8,7 @@ import Pandora.Pattern.Functor.Applicative (Applicative ((<*>))) import Pandora.Pattern.Functor.Traversable (Traversable ((->>), (->>>))) import Pandora.Pattern.Functor.Bindable (Bindable ((>>=)))+import Pandora.Pattern.Functor.Liftable (Liftable (lift)) import Pandora.Pattern.Functor.Divariant (($))  data Free t a = Pure a | Impure (t :. Free t := a)@@ -39,3 +40,6 @@ instance Traversable t => Traversable (Free t) where 	Pure x ->> f = Pure <$> f x 	Impure xs ->> f = Impure <$> xs ->>> f++instance Liftable Free where+	lift x = Impure $ Pure <$> x
Pandora/Paradigm/Basis/Maybe.hs view
@@ -1,9 +1,10 @@-module Pandora.Paradigm.Basis.Maybe (Maybe (..), maybe) where+module Pandora.Paradigm.Basis.Maybe (Maybe (..), Optional, maybe, nothing) where  import Pandora.Core.Functor (Variant (Co)) import Pandora.Core.Morphism ((.)) import Pandora.Paradigm.Controlflow.Joint.Interpreted (Interpreted (Primary, unwrap))-import Pandora.Paradigm.Controlflow.Joint.Transformer (Transformer (Schema, lay, wrap))+import Pandora.Paradigm.Controlflow.Joint.Transformer (Transformer (Schema, lay, wrap), (:>)(T))+import Pandora.Paradigm.Controlflow.Joint.Adaptable (Adaptable (adapt)) import Pandora.Paradigm.Controlflow.Joint.Schemes.UT (UT (UT)) import Pandora.Pattern.Functor.Covariant (Covariant ((<$>), (<$$>))) import Pandora.Pattern.Functor.Avoidable (Avoidable (empty))@@ -51,29 +52,6 @@  instance Monad Maybe where -instance Interpreted Maybe where-	type Primary Maybe a = Maybe a-	unwrap x = x--instance Transformer Maybe where-	type Schema Maybe u = UT 'Co 'Co Maybe u-	lay x = UT $ Just <$> x-	wrap x = UT . point $ x--instance Covariant u => Covariant (UT 'Co 'Co Maybe u) where-	f <$> UT x = UT $ f <$$> x--instance Applicative u => Applicative (UT 'Co 'Co Maybe u) where-	UT f <*> UT x = UT $ apply <$> f <*> x--instance Pointable u => Pointable (UT 'Co 'Co Maybe u) where-	point = UT . point . point--instance (Pointable u, Bindable u) => Bindable (UT 'Co 'Co Maybe u) where-	UT x >>= f = UT $ x >>= maybe (point Nothing) (unwrap . f)--instance Monad u => Monad (UT 'Co 'Co Maybe u) where- instance Setoid a => Setoid (Maybe a) where 	Just x == Just y = x == y 	Nothing == Nothing = True@@ -108,3 +86,31 @@ maybe :: b -> (a -> b) -> Maybe a -> b maybe x _ Nothing = x maybe _ f (Just y) = f y++instance Interpreted Maybe where+	type Primary Maybe a = Maybe a+	unwrap x = x++instance Transformer Maybe where+	type Schema Maybe u = UT 'Co 'Co Maybe u+	lay x = T . UT $ Just <$> x+	wrap x = T. UT . point $ x++type Optional = Adaptable Maybe++instance Covariant u => Covariant (UT 'Co 'Co Maybe u) where+	f <$> UT x = UT $ f <$$> x++instance Applicative u => Applicative (UT 'Co 'Co Maybe u) where+	UT f <*> UT x = UT $ apply <$> f <*> x++instance Pointable u => Pointable (UT 'Co 'Co Maybe u) where+	point = UT . point . point++instance (Pointable u, Bindable u) => Bindable (UT 'Co 'Co Maybe u) where+	UT x >>= f = UT $ x >>= maybe (point Nothing) (unwrap . f)++instance Monad u => Monad (UT 'Co 'Co Maybe u) where++nothing :: (Covariant t, Optional t) => t a+nothing = adapt Nothing
Pandora/Paradigm/Basis/Twister.hs view
@@ -1,6 +1,6 @@ module Pandora.Paradigm.Basis.Twister (Twister (..), untwist, coiterate, section) where -import Pandora.Core.Functor (type (:.), type (:=))+import Pandora.Core.Functor (type (:.), type (:=), type (|->)) import Pandora.Core.Transformation (type (~>)) import Pandora.Pattern.Functor.Covariant (Covariant ((<$>), (<$$>), comap)) import Pandora.Pattern.Functor.Avoidable (Avoidable (empty))@@ -59,7 +59,7 @@ untwist :: Twister t a -> (t :. Twister t) a untwist (_ :< xs) = xs -coiterate :: Covariant t => (a -> t a) -> a -> Twister t a+coiterate :: Covariant t => a |-> t -> a -> Twister t a coiterate coalgebra x = x :< (coiterate coalgebra <$> coalgebra x)  section :: Comonad t => t ~> Twister t
Pandora/Paradigm/Basis/Yoneda.hs view
@@ -1,13 +1,14 @@ module Pandora.Paradigm.Basis.Yoneda (Yoneda (..)) where  import Pandora.Core.Morphism ((.), (!), identity)-import Pandora.Pattern.Functor.Covariant (Covariant ((<$>), comap))+import Pandora.Pattern.Functor.Covariant (Covariant ((<$>))) import Pandora.Pattern.Functor.Alternative (Alternative ((<+>))) import Pandora.Pattern.Functor.Applicative (Applicative ((<*>))) import Pandora.Pattern.Functor.Avoidable (Avoidable (empty)) import Pandora.Pattern.Functor.Pointable (Pointable (point)) import Pandora.Pattern.Functor.Extractable (Extractable (extract))-import Pandora.Pattern.Functor.Adjoint (Adjoint (phi, psi))+import Pandora.Pattern.Functor.Adjoint (Adjoint ((-|), (|-)))+import Pandora.Pattern.Functor.Liftable (Liftable (lift)) import Pandora.Pattern.Functor.Divariant (($))  newtype Yoneda t a = Yoneda@@ -31,6 +32,9 @@ instance Extractable t => Extractable (Yoneda t) where 	extract (Yoneda f) = extract $ f identity +instance Liftable Yoneda where+	lift x = Yoneda (\f -> f <$> x)+ instance (Extractable t, Pointable t, Extractable u, Pointable u) => Adjoint (Yoneda t) (Yoneda u) where-	phi f = point . f . point-	psi f = extract . extract . comap f+	x -| f = point . f . point $ x+	x |- g = extract . extract $ g <$> x
Pandora/Paradigm/Controlflow/Joint.hs view
@@ -3,3 +3,4 @@ import Pandora.Paradigm.Controlflow.Joint.Schemes as Exports import Pandora.Paradigm.Controlflow.Joint.Transformer as Exports import Pandora.Paradigm.Controlflow.Joint.Interpreted as Exports+import Pandora.Paradigm.Controlflow.Joint.Adaptable as Exports
+ Pandora/Paradigm/Controlflow/Joint/Adaptable.hs view
@@ -0,0 +1,148 @@+module Pandora.Paradigm.Controlflow.Joint.Adaptable (Adaptable (..)) where++import Pandora.Core.Morphism (identity, (.))+import Pandora.Core.Transformation (type (~>))+import Pandora.Pattern.Functor.Covariant (Covariant)+import Pandora.Pattern.Functor.Pointable (Pointable)+import Pandora.Paradigm.Controlflow.Joint.Transformer (Transformer (Schema, lay, wrap), (:>))++class Adaptable eff schema where+	{-# MINIMAL adapt #-}+	adapt :: eff ~> schema++type Layable t u = (Transformer t, Covariant u)+type Wrappable t u = (Transformer t, Pointable u)++instance Adaptable t t where+	adapt = identity++instance Layable t u => Adaptable u (t :> u) where+	adapt = lay++instance Wrappable t u => Adaptable t (t :> u) where+	adapt = wrap++instance+	( Layable t (Schema u v)+	, Wrappable u v+	) => Adaptable u (t :> u :> v) where+	adapt = lay . wrap++instance+	( Layable t (Schema u v)+	, Layable u v+	) => Adaptable v (t :> u :> v) where+	adapt = lay . lay++instance+	( Layable t (Schema u (v :> w))+	, Layable u (Schema v w)+	, Wrappable v w+	) => Adaptable v (t :> u :> v :> w) where+	adapt = lay . lay . wrap++instance+	( Layable t (Schema u v)+	, Layable t (Schema u (v :> w))+	, Layable u (Schema v w)+	, Layable v w+	) => Adaptable w (t :> u :> v :> w) where+	adapt = lay . lay . lay++instance (Layable t (Schema u (v :> w :> x))+	, Layable u (Schema v (w :> x))+	, Layable v (Schema w x)+	, Layable w x+	) => Adaptable x (t :> u :> v :> w :> x) where+	adapt = lay . lay . lay . lay++instance (Layable t (Schema u (v :> w :> x))+	, Layable u (Schema v (w :> x))+	, Layable v (Schema w x)+	, Wrappable w x+	) => Adaptable w (t :> u :> v :> w :> x) where+	adapt = lay . lay . lay . wrap++instance+	( Layable t (Schema u (v :> w :> x :> y))+	, Layable u (Schema v (w :> x :> y))+	, Layable v (Schema w (x :> y))+	, Layable w (Schema x y)+	, Layable x y+	) => Adaptable y (t :> u :> v :> w :> x :> y) where+	adapt = lay . lay . lay . lay . lay++instance+	( Layable t (Schema u (v :> w :> x :> y))+	, Layable u (Schema v (w :> x :> y))+	, Layable v (Schema w (x :> y))+	, Layable w (Schema x y)+	, Wrappable x y+	) => Adaptable x (t :> u :> v :> w :> x :> y) where+	adapt = lay . lay . lay . lay . wrap++instance+	( Layable t (Schema u (v :> w :> x :> y :> z))+	, Layable u (Schema v (w :> x :> y :> z))+	, Layable v (Schema w (x :> y :> z))+	, Layable w (Schema x (y :> z))+	, Layable x (Schema y z)+	, Layable y z+	) => Adaptable z (t :> u :> v :> w :> x :> y :> z) where+	adapt = lay . lay . lay . lay . lay . lay++instance+	( Layable t (Schema u (v :> w :> x :> y :> z))+	, Layable u (Schema v (w :> x :> y :> z))+	, Layable v (Schema w (x :> y :> z))+	, Layable w (Schema x (y :> z))+	, Layable x (Schema y z)+	, Wrappable y z+	) => Adaptable y (t :> u :> v :> w :> x :> y :> z) where+	adapt = lay . lay . lay . lay . lay . wrap++instance+	( Layable t (Schema u (v :> w :> x :> y :> z :> f))+	, Layable u (Schema v (w :> x :> y :> z :> f))+	, Layable v (Schema w (x :> y :> z :> f))+	, Layable w (Schema x (y :> z :> f))+	, Layable x (Schema y (z :> f))+	, Layable y (Schema z f)+	, Layable z f+	) => Adaptable f (t :> u :> v :> w :> x :> y :> z :> f) where+	adapt = lay . lay . lay . lay . lay . lay . lay++instance+	( Layable t (Schema u (v :> w :> x :> y :> z :> f))+	, Layable u (Schema v (w :> x :> y :> z :> f))+	, Layable v (Schema w (x :> y :> z :> f))+	, Layable w (Schema x (y :> z :> f))+	, Layable x (Schema y (z :> f))+	, Layable y (Schema z f)+	, Wrappable z f+	) => Adaptable z (t :> u :> v :> w :> x :> y :> z :> f) where+	adapt = lay . lay . lay . lay . lay . lay . wrap++instance+	( Layable t (Schema u (v :> w :> x :> y :> z :> f :> h))+	, Layable u (Schema v (w :> x :> y :> z :> f :> h))+	, Layable v (Schema w (x :> y :> z :> f :> h))+	, Layable w (Schema x (y :> z :> f :> h))+	, Layable x (Schema y (z :> f :> h))+	, Layable y (Schema z (f :> h))+	, Layable z (Schema f h)+	, Layable f h+	) => Adaptable h (t :> u :> v :> w :> x :> y :> z :> f :> h) where+	adapt = lay . lay . lay . lay . lay . lay . lay . lay++instance+	( Layable t (Schema u (v :> w :> x :> y :> z :> f :> h))+	, Layable u (Schema v (w :> x :> y :> z :> f :> h))+	, Layable v (Schema w (x :> y :> z :> f :> h))+	, Layable w (Schema x (y :> z :> f :> h))+	, Layable x (Schema y (z :> f :> h))+	, Layable y (Schema z (f :> h))+	, Layable z (Schema f h)+	, Wrappable f h+	) => Adaptable f (t :> u :> v :> w :> x :> y :> z :> f :> h) where+	adapt = lay . lay . lay . lay . lay . lay . lay . wrap
Pandora/Paradigm/Controlflow/Joint/Transformer.hs view
@@ -1,18 +1,55 @@-module Pandora.Paradigm.Controlflow.Joint.Transformer (Transformer (..), type (:>)) where+module Pandora.Paradigm.Controlflow.Joint.Transformer (Transformer (..), (:>) (..)) where +import Pandora.Core.Morphism ((.)) import Pandora.Core.Transformation (type (~>))-import Pandora.Paradigm.Controlflow.Joint.Interpreted (Interpreted)-import Pandora.Pattern.Functor.Covariant (Covariant)-import Pandora.Pattern.Functor.Pointable (Pointable)+import Pandora.Paradigm.Controlflow.Joint.Interpreted (Interpreted (Primary, unwrap))+import Pandora.Pattern.Functor.Covariant (Covariant ((<$>)))+import Pandora.Pattern.Functor.Pointable (Pointable (point))+import Pandora.Pattern.Functor.Extractable (Extractable (extract))+import Pandora.Pattern.Functor.Applicative (Applicative ((<*>)))+import Pandora.Pattern.Functor.Alternative (Alternative ((<+>)))+import Pandora.Pattern.Functor.Distributive (Distributive ((>>-)))+import Pandora.Pattern.Functor.Traversable (Traversable ((->>)))+import Pandora.Pattern.Functor.Bindable (Bindable ((>>=)))+import Pandora.Pattern.Functor.Extendable (Extendable ((=>>)))+import Pandora.Pattern.Functor.Divariant (($))  class Interpreted t => Transformer t where 	{-# MINIMAL lay, wrap #-} 	type Schema (t :: * -> *) (u :: * -> *) = (r :: * -> *) | r -> t u-	lay :: Covariant u => u ~> Schema t u-	wrap :: Pointable u => t ~> Schema t u---- infixr 1 :>--- type (:>) t u a = Transformer t => Schema t u a+	lay :: Covariant u => u ~> t :> u+	wrap :: Pointable u => t ~> t :> u  infixr 3 :>-newtype (:>) t u a = T { trans :: Transformer t => Schema t u a }+newtype (:>) t u a = T { trans :: Schema t u a }++instance Covariant (Schema t u) => Covariant (t :> u) where+	f <$> T x = T $ f <$> x++instance Pointable (Schema t u) => Pointable (t :> u) where+	point = T . point++instance Extractable (Schema t u) => Extractable (t :> u) where+	extract = extract . trans++instance Applicative (Schema t u) => Applicative (t :> u) where+	T f <*> T x = T $ f <*> x++instance Alternative (Schema t u) => Alternative (t :> u) where+	T x <+> T y = T $ x <+> y++instance Traversable (Schema t u) => Traversable (t :> u) where+	T x ->> f = T <$> x ->> f++instance Distributive (Schema t u) => Distributive (t :> u) where+	x >>- f = T $ x >>- trans . f++instance Bindable (Schema t u) => Bindable (t :> u) where+	T x >>= f = T $ x >>= trans . f++instance Extendable (Schema t u) => Extendable (t :> u) where+	T x =>> f = T $ x =>> f . T++instance (Interpreted (Schema t u), Transformer t) => Interpreted (t :> u) where+	type Primary (t :> u) a = Primary (Schema t u) a+	unwrap (T x) = unwrap x
Pandora/Paradigm/Inventory.hs view
@@ -2,5 +2,6 @@  import Pandora.Paradigm.Inventory.Optics as Exports import Pandora.Paradigm.Inventory.Storage as Exports-import Pandora.Paradigm.Inventory.Stateful as Exports-import Pandora.Paradigm.Inventory.Environmental as Exports+import Pandora.Paradigm.Inventory.State as Exports+import Pandora.Paradigm.Inventory.Environment as Exports+import Pandora.Paradigm.Inventory.Accumulator as Exports
+ Pandora/Paradigm/Inventory/Accumulator.hs view
@@ -0,0 +1,61 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}++module Pandora.Paradigm.Inventory.Accumulator (Accumulator (..), Accumulated, gather) where++import Pandora.Core.Functor (Variant (Co))+import Pandora.Core.Morphism ((.))+import Pandora.Paradigm.Basis.Product (Product ((:*:)), type (:*:))+import Pandora.Paradigm.Controlflow.Joint.Interpreted (Interpreted (Primary, unwrap))+import Pandora.Paradigm.Controlflow.Joint.Transformer (Transformer (Schema, lay, wrap), (:>) (T))+import Pandora.Paradigm.Controlflow.Joint.Adaptable (Adaptable (adapt))+import Pandora.Paradigm.Controlflow.Joint.Schemes.UT (UT (UT))+import Pandora.Pattern.Functor.Covariant (Covariant ((<$>), (<$$>)))+import Pandora.Pattern.Functor.Pointable (Pointable (point))+import Pandora.Pattern.Functor.Applicative (Applicative ((<*>)))+import Pandora.Pattern.Functor.Bindable (Bindable ((>>=)))+import Pandora.Pattern.Functor.Divariant (($))+import Pandora.Pattern.Object.Monoid (Monoid (zero))+import Pandora.Pattern.Object.Semigroup (Semigroup ((+)))++newtype Accumulator e a = Accumulator (e :*: a)++instance Covariant (Accumulator e) where+	f <$> Accumulator x = Accumulator $ f <$> x++instance Semigroup e => Applicative (Accumulator e) where+	f <*> v = Accumulator $ k (unwrap f) (unwrap v) where+		k ~(e :*: g) ~(e' :*: w) = e + e' :*: g w++instance Monoid e => Pointable (Accumulator e) where+	point = Accumulator . (zero :*:)++instance Semigroup e => Bindable (Accumulator e) where+	Accumulator (e :*: x) >>= f = let (e' :*: b) = unwrap $ f x in+		Accumulator $ e + e':*: b++instance Interpreted (Accumulator e) where+	type Primary (Accumulator e) a = e :*: a+	unwrap (Accumulator x) = x++instance Monoid e => Transformer (Accumulator e) where+	type Schema (Accumulator e) u = UT 'Co 'Co ((:*:) e) u+	lay x = T . UT $ (zero :*:) <$> x+	wrap = T . UT . point . unwrap++type Accumulated e t = Adaptable (Accumulator e) t++instance Covariant u => Covariant (UT 'Co 'Co ((:*:) e) u) where+	f <$> UT x = UT $ f <$$> x++instance (Semigroup e, Applicative u) => Applicative (UT 'Co 'Co ((:*:) e) u) where+	UT f <*> UT x = UT $ k <$> f <*> x where+		k ~(u :*: g) ~(v :*: y) = u + v :*: g y++instance (Pointable u, Monoid e) => Pointable (UT 'Co 'Co ((:*:) e) u) where+	point = UT . point . (zero :*:)++instance (Semigroup e, Pointable u, Bindable u) => Bindable (UT 'Co 'Co ((:*:) e) u) where+	UT x >>= f = UT $ x >>= \(acc :*: v) -> (\(acc' :*: y) -> (acc + acc' :*: y)) <$> unwrap (f v)++gather :: (Covariant t, Accumulated e t) => e -> t ()+gather x = adapt . Accumulator $ x :*: ()
+ Pandora/Paradigm/Inventory/Environment.hs view
@@ -0,0 +1,62 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}++module Pandora.Paradigm.Inventory.Environment (Environment (..), Configured, env) where++import Pandora.Core.Functor (Variant (Co))+import Pandora.Core.Morphism (identity, (.), (!), (%))+import Pandora.Paradigm.Controlflow.Joint.Interpreted (Interpreted (Primary, unwrap))+import Pandora.Paradigm.Controlflow.Joint.Transformer (Transformer (Schema, lay, wrap), (:>) (T))+import Pandora.Paradigm.Controlflow.Joint.Adaptable (Adaptable (adapt))+import Pandora.Paradigm.Controlflow.Joint.Schemes.TU (TU (TU))+import Pandora.Pattern.Functor.Covariant (Covariant ((<$>)))+import Pandora.Pattern.Functor.Pointable (Pointable (point))+import Pandora.Pattern.Functor.Applicative (Applicative ((<*>)))+import Pandora.Pattern.Functor.Distributive (Distributive ((>>-)))+import Pandora.Pattern.Functor.Bindable (Bindable ((>>=)))+import Pandora.Pattern.Functor.Monad (Monad)+import Pandora.Pattern.Functor.Divariant (($))++newtype Environment e a = Environment (e -> a)++instance Covariant (Environment e) where+	f <$> Environment x = Environment $ f . x++instance Pointable (Environment e) where+	point x = Environment (x !)++instance Applicative (Environment e) where+	f <*> x = Environment $ \e -> unwrap f e $ unwrap x e++instance Distributive (Environment e) where+	g >>- f = Environment $ g >>- (unwrap <$> f)++instance Bindable (Environment e) where+	Environment x >>= f = Environment $ \e -> unwrap % e . f . x $ e++instance Monad (Environment e) where++instance Interpreted (Environment e) where+	type Primary (Environment e) a = (->) e a+	unwrap (Environment x) = x++instance Transformer (Environment e) where+	type Schema (Environment e) u = TU 'Co 'Co ((->) e) u+	lay = T . TU . (!)+	wrap x = T. TU $ point <$> unwrap x++type Configured e = Adaptable (Environment e)++instance Covariant u => Covariant (TU 'Co 'Co ((->) e) u) where+	f <$> TU x = TU $ \r -> f <$> x r++instance (Covariant u, Pointable u) => Pointable (TU 'Co 'Co ((->) e) u) where+	point = TU . point . point++instance Applicative u => Applicative (TU 'Co 'Co ((->) e) u) where+	TU f <*> TU x = TU $ \r -> f r <*> x r++instance Bindable u => Bindable (TU 'Co 'Co ((->) e) u) where+	TU x >>= f = TU $ \e -> x e >>= ($ e) . unwrap . f++env :: (Covariant t, Configured e t) => t e+env = adapt $ Environment identity
− Pandora/Paradigm/Inventory/Environmental.hs
@@ -1,34 +0,0 @@-module Pandora.Paradigm.Inventory.Environmental (Environmental (..), env, local) where--import Pandora.Core.Morphism (identity, (.), (!))-import Pandora.Pattern.Functor.Covariant (Covariant ((<$>)))-import Pandora.Pattern.Functor.Pointable (Pointable (point))-import Pandora.Pattern.Functor.Applicative (Applicative ((<*>)))-import Pandora.Pattern.Functor.Bindable (Bindable ((>>=)))-import Pandora.Pattern.Functor.Monad (Monad)-import Pandora.Pattern.Functor.Divariant (($))--newtype Environmental e a = Environmental (e -> a)--environmentally :: e -> Environmental e a -> a-environmentally e (Environmental f) = f e--instance Covariant (Environmental e) where-	f <$> Environmental x = Environmental $ f . x--instance Pointable (Environmental e) where-	point x = Environmental (x !)--instance Applicative (Environmental e) where-	f <*> x = Environmental $ \e -> environmentally e f $ environmentally e x--instance Bindable (Environmental e) where-	Environmental x >>= f = Environmental $ \e -> environmentally e . f . x $ e--instance Monad (Environmental e) where--env :: Environmental e e-env = Environmental identity--local :: (e -> e) -> Environmental e a -> Environmental e a-local f (Environmental x) = Environmental $ x . f
Pandora/Paradigm/Inventory/Optics.hs view
@@ -1,18 +1,20 @@-module Pandora.Paradigm.Inventory.Optics-	(Lens, type (:-.), (|>), view, set, over, (^.), (.~), (%~)) where+{-# OPTIONS_GHC -fno-warn-orphans #-} -import Pandora.Core.Morphism ((.), (!))+module Pandora.Paradigm.Inventory.Optics (Lens, type (:-.), (|>), view, set, over, (^.), (.~), (%~)) where++import Pandora.Core.Morphism ((.), (!), (%)) import Pandora.Paradigm.Basis.Product (Product ((:*:)))-import Pandora.Paradigm.Inventory.Stateful (Stateful (Stateful), statefully)+import Pandora.Paradigm.Controlflow.Joint.Interpreted (Interpreted (unwrap))+import Pandora.Paradigm.Inventory.State (State (State)) import Pandora.Paradigm.Inventory.Storage (Storage (Storage), access, position, retrofit) import Pandora.Pattern.Functor.Covariant (Covariant ((<$))) import Pandora.Pattern.Functor.Extractable (Extractable (extract)) import Pandora.Pattern.Functor.Adjoint (Adjoint ((-|), (|-))) import Pandora.Pattern.Functor.Divariant (($)) -instance Adjoint (Storage s) (Stateful s) where-	v -| f = Stateful $ \s -> (:*:) s . f . Storage $ s :*: (v !)-	Storage (s :*: f) |- g = extract . statefully s . g $ f s+instance Adjoint (Storage s) (State s) where+	v -| f = State $ \s -> (:*:) s . f . Storage $ s :*: (v !)+	Storage (s :*: f) |- g = extract . unwrap % s . g $ f s  infixr 0 :-. type (:-.) src tgt = Lens src tgt
+ Pandora/Paradigm/Inventory/State.hs view
@@ -0,0 +1,83 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}++module Pandora.Paradigm.Inventory.State (State (..), Stateful, current, modify, replace, fold, find) where++import Pandora.Core.Functor (Variant (Co), type (:.), type (:=))+import Pandora.Core.Morphism ((.), (%))+import Pandora.Paradigm.Controlflow.Joint.Interpreted (Interpreted (Primary, unwrap))+import Pandora.Paradigm.Controlflow.Joint.Transformer (Transformer (Schema, lay, wrap), (:>) (T))+import Pandora.Paradigm.Controlflow.Joint.Adaptable (Adaptable (adapt))+import Pandora.Paradigm.Controlflow.Joint.Schemes.TUV (TUV (TUV))+import Pandora.Paradigm.Basis.Predicate (Predicate (predicate))+import Pandora.Paradigm.Basis.Product (Product ((:*:)), type (:*:), attached, delta, uncurry)+import Pandora.Pattern.Functor.Covariant (Covariant ((<$>), ($>), (<$$>)))+import Pandora.Pattern.Functor.Extractable (Extractable (extract))+import Pandora.Pattern.Functor.Avoidable (Avoidable (empty))+import Pandora.Pattern.Functor.Pointable (Pointable (point))+import Pandora.Pattern.Functor.Applicative (Applicative ((<*>), (*>)))+import Pandora.Pattern.Functor.Alternative (Alternative ((<+>)))+import Pandora.Pattern.Functor.Traversable (Traversable ((->>)))+import Pandora.Pattern.Functor.Bindable (Bindable ((>>=)))+import Pandora.Pattern.Functor.Monad (Monad)+import Pandora.Pattern.Functor.Divariant (($))+import Pandora.Pattern.Object.Setoid (bool)++newtype State s a = State ((->) s :. (:*:) s := a)++instance Covariant (State s) where+	f <$> State x = State $ \old -> f <$> x old++instance Applicative (State s) where+	State f <*> State x = State $ \old ->+		let latest = attached . x $ old in+			latest :*: (extract (f old) . extract . x $ old)++instance Pointable (State s) where+	point x = State $ \s -> s :*: x++instance Bindable (State s) where+	State x >>= f = State $ \old ->+		uncurry (unwrap %) $ f <$> x old++instance Monad (State s) where++fold :: Traversable t => s -> (a -> s -> s) -> t a -> s+fold start op struct = extract . unwrap @(State _) % start $+	struct ->> modify . op $> () *> current++find :: (Pointable u, Avoidable u, Alternative u, Traversable t) => Predicate a -> t a -> u a+find p struct = fold empty (\x s -> (<+>) s . bool empty (point x) . predicate p $ x) struct++instance Interpreted (State s) where+	type Primary (State s) a = (->) s :. (:*:) s := a+	unwrap (State x) = x++instance Transformer (State s) where+	type Schema (State s) u = TUV 'Co 'Co 'Co ((->) s) u ((:*:) s)+	lay x = T . TUV $ \s -> (s :*:) <$> x+	wrap x = T . TUV $ point <$> unwrap x++type Stateful s = Adaptable (State s)++instance Covariant u => Covariant (TUV 'Co 'Co 'Co ((->) s) u ((:*:) s)) where+	f <$> TUV x = TUV $ \old -> f <$$> x old++instance Bindable u => Applicative (TUV 'Co 'Co 'Co ((->) s) u ((:*:) s)) where+	TUV f <*> TUV x = TUV $ \old -> f old >>= \(new :*: g) -> g <$$> x new++instance Pointable u => Pointable (TUV 'Co 'Co 'Co ((->) s) u ((:*:) s)) where+	point x = TUV $ \s -> point $ s :*: x++instance Bindable u => Bindable (TUV 'Co 'Co 'Co ((->) s) u ((:*:) s)) where+	TUV x >>= f = TUV $ \old -> x old >>= \(new :*: y) -> ($ new) . unwrap . f $ y++instance Monad u => Monad (TUV 'Co 'Co 'Co ((->) s) u ((:*:) s)) where++current :: (Covariant t, Stateful s t) => t s+current = adapt $ State delta++modify :: (Covariant t, Stateful s t) => (s -> s) -> t ()+modify f = adapt $ State $ \s -> f s :*: ()++replace :: (Covariant t, Stateful s t) => s -> t ()+replace s = adapt $ State $ \_ -> s :*: ()
− Pandora/Paradigm/Inventory/Stateful.hs
@@ -1,82 +0,0 @@-module Pandora.Paradigm.Inventory.Stateful-	(Stateful (..), statefully, get, modify, put, fold, find) where--import Pandora.Core.Functor (Variant (Co), type (:.), type (:=))-import Pandora.Core.Morphism ((.))-import Pandora.Paradigm.Controlflow.Joint.Interpreted (Interpreted (Primary, unwrap))-import Pandora.Paradigm.Controlflow.Joint.Transformer (Transformer (Schema, lay, wrap))-import Pandora.Paradigm.Controlflow.Joint.Schemes.TUV (TUV (TUV))-import Pandora.Paradigm.Basis.Predicate (Predicate (predicate))-import Pandora.Paradigm.Basis.Product (Product ((:*:)), type (:*:), attached, delta, uncurry)-import Pandora.Pattern.Functor.Covariant (Covariant ((<$>), ($>), (<$$>)))-import Pandora.Pattern.Functor.Extractable (Extractable (extract))-import Pandora.Pattern.Functor.Avoidable (Avoidable (empty))-import Pandora.Pattern.Functor.Pointable (Pointable (point))-import Pandora.Pattern.Functor.Applicative (Applicative ((<*>), (*>)))-import Pandora.Pattern.Functor.Alternative (Alternative ((<+>)))-import Pandora.Pattern.Functor.Traversable (Traversable ((->>)))-import Pandora.Pattern.Functor.Bindable (Bindable ((>>=)))-import Pandora.Pattern.Functor.Monad (Monad)-import Pandora.Pattern.Functor.Divariant (($))-import Pandora.Pattern.Object.Setoid (bool)--newtype Stateful s a = Stateful ((->) s :. (:*:) s := a)--statefully :: s -> Stateful s a -> s :*: a-statefully initial (Stateful state) = state initial--instance Covariant (Stateful s) where-	f <$> Stateful x = Stateful $ \old -> f <$> x old--instance Applicative (Stateful s) where-	Stateful f <*> Stateful x = Stateful $ \old ->-		let latest = attached . x $ old in-			latest :*: (extract (f old) . extract . x $ old)--instance Pointable (Stateful s) where-	point x = Stateful $ \s -> s :*: x--instance Bindable (Stateful s) where-	Stateful x >>= f = Stateful $ \old ->-		uncurry statefully $ f <$> x old--instance Monad (Stateful s) where--get :: Stateful s s-get = Stateful delta--modify :: (s -> s) -> Stateful s ()-modify f = Stateful $ \s -> f s :*: ()--put :: s -> Stateful s ()-put s = Stateful $ \_ -> s :*: ()--fold :: Traversable t => s -> (a -> s -> s) -> t a -> s-fold start op struct = extract . statefully start $-	struct ->> modify . op $> () *> get--find :: (Pointable u, Avoidable u, Alternative u, Traversable t) => Predicate a -> t a -> u a-find p struct = fold empty (\x s -> (<+>) s . bool empty (point x) . predicate p $ x) struct--instance Interpreted (Stateful s) where-	type Primary (Stateful s) a = (->) s :. (:*:) s := a-	unwrap (Stateful x) = x--instance Transformer (Stateful s) where-	type Schema (Stateful s) u = TUV 'Co 'Co 'Co ((->) s) u ((:*:) s)-	lay x = TUV $ \s -> (s :*:) <$> x-	wrap x = TUV $ point <$> unwrap x--instance Covariant u => Covariant (TUV 'Co 'Co 'Co ((->) s) u ((:*:) s)) where-	f <$> TUV x = TUV $ \old -> f <$$> x old--instance Bindable u => Applicative (TUV 'Co 'Co 'Co ((->) s) u ((:*:) s)) where-	TUV f <*> TUV x = TUV $ \old -> f old >>= \(new :*: g) -> g <$$> x new--instance Pointable u => Pointable (TUV 'Co 'Co 'Co ((->) s) u ((:*:) s)) where-	point x = TUV $ \s -> point $ s :*: x--instance Bindable u => Bindable (TUV 'Co 'Co 'Co ((->) s) u ((:*:) s)) where-	TUV x >>= f = TUV $ \old -> x old >>= \(new :*: y) -> ($ new) . unwrap . f $ y--instance Monad u => Monad (TUV 'Co 'Co 'Co ((->) s) u ((:*:) s)) where
Pandora/Paradigm/Structure/Cartesian.hs view
@@ -1,8 +1,7 @@-module Pandora.Paradigm.Structure.Cartesian (Cartesian) where+module Pandora.Paradigm.Structure.Cartesian (Cartesian (..)) where  import Pandora.Paradigm.Basis.Product (type (:*:))  class Cartesian (t :: * -> *) where 	{-# MINIMAL (-:*:-) #-} 	(-:*:-) :: t a -> t b -> t (a :*: b)-	cartesian :: t a -> t b -> t (a :*: b)
Pandora/Paradigm/Structure/Specific/Graph.hs view
@@ -5,7 +5,7 @@ import Pandora.Core.Morphism ((.)) import Pandora.Paradigm.Basis.Edges (Edges (Empty, Overlay)) import Pandora.Paradigm.Basis.Twister (Twister ((:<)))-import Pandora.Paradigm.Inventory.Stateful (fold)+import Pandora.Paradigm.Inventory.State (fold) import Pandora.Pattern.Functor.Covariant (Covariant ((<$>), (<$$>))) import Pandora.Pattern.Functor.Divariant (($)) import Pandora.Pattern.Functor.Traversable (Traversable ((->>), (->>>)))
Pandora/Paradigm/Structure/Specific/Stack.hs view
@@ -6,7 +6,7 @@ import Pandora.Paradigm.Basis.Maybe (Maybe (Just, Nothing)) import Pandora.Paradigm.Basis.Predicate (Predicate (Predicate)) import Pandora.Paradigm.Basis.Twister (Twister ((:<)), untwist)-import Pandora.Paradigm.Inventory.Stateful (fold)+import Pandora.Paradigm.Inventory.State (fold) import Pandora.Paradigm.Controlflow.Joint.Interpreted (Interpreted (Primary, unwrap)) import Pandora.Pattern.Functor.Covariant (Covariant ((<$>), (<$$>))) import Pandora.Pattern.Functor.Alternative (Alternative ((<+>)))
Pandora/Pattern/Functor/Covariant.hs view
@@ -1,6 +1,6 @@ module Pandora.Pattern.Functor.Covariant (Covariant (..)) where -import Pandora.Core.Functor (type (:.), type (:=))+import Pandora.Core.Functor (type (:.), type (:=), type (<-|)) import Pandora.Core.Morphism (fix, (.), (!), (%))  infixl 4 <$>, <$, $>@@ -29,7 +29,7 @@ 	void :: t a -> t () 	void x = () <$ x 	-- | Computing a value from a structure of values-	loeb :: t (t a -> a) -> t a+	loeb :: t (a <-| t) -> t a 	loeb tt = fix (\f -> (\g -> g f) <$> tt) 	-- | Flipped infix version of 'comap' 	(<&>) :: t a -> (a -> b) -> t b
Pandora/Pattern/Functor/Distributive.hs view
@@ -14,27 +14,27 @@  infixl 5 >>-, >>>-, >>>>-, >>>>>- -class Covariant u => Distributive u where+class Covariant t => Distributive t where 	{-# MINIMAL (>>-) #-} 	-- | Infix and flipped version of 'collect'-	(>>-) :: Covariant t => t a -> (a -> u b) -> u :. t := b+	(>>-) :: Covariant u => u a -> (a -> t b) -> t :. u := b  	-- | Prefix version of '>>-'-	collect :: Covariant t => (a -> u b) -> t a -> u :. t := b+	collect :: Covariant u => (a -> t b) -> u a -> t :. u := b 	collect f t = t >>- f 	-- | The dual of 'sequence'-	distribute :: Covariant t => t :. u := a -> u :. t := a+	distribute :: Covariant u => u :. t := a -> t :. u := a 	distribute t = t >>- identity  	-- | Infix versions of `collect` with various nesting levels-	(>>>-) :: (Covariant t, Covariant v)-		=> t :. v := a -> (a -> u b) -> u :. t :. v := b+	(>>>-) :: (Covariant u, Covariant v)+		=> u :. v := a -> (a -> t b) -> t :. u :. v := b 	x >>>- f = (collect . collect) f x-	(>>>>-) :: (Covariant t, Covariant v, Covariant w)-		=> t :. v :. w := a -> (a -> u b) -> u :. t :. v :. w := b+	(>>>>-) :: (Covariant u, Covariant v, Covariant w)+		=> u :. v :. w := a -> (a -> t b) -> t :. u :. v :. w := b 	x >>>>- f = (collect . collect . collect) f x-	(>>>>>-) :: (Covariant t, Covariant v, Covariant w, Covariant j)-		=> t :. v :. w :. j := a -> (a -> u b) -> u :. t :. v :. w :. j := b+	(>>>>>-) :: (Covariant u, Covariant v, Covariant w, Covariant j)+		=> u :. v :. w :. j := a -> (a -> t b) -> t :. u :. v :. w :. j := b 	x >>>>>- f = (collect . collect . collect . collect) f x  instance Distributive ((->) e) where
Pandora/Pattern/Functor/Extractable.hs view
@@ -1,6 +1,7 @@ module Pandora.Pattern.Functor.Extractable (Extractable (..)) where +import Pandora.Core.Functor (type (<-|)) import Pandora.Pattern.Functor.Covariant (Covariant)  class Covariant t => Extractable t where-	extract :: t a -> a+	extract :: a <-| t
Pandora/Pattern/Functor/Pointable.hs view
@@ -1,10 +1,11 @@ module Pandora.Pattern.Functor.Pointable (Pointable (..)) where +import Pandora.Core.Functor (type (|->)) import Pandora.Core.Morphism ((!)) import Pandora.Pattern.Functor.Covariant (Covariant)  class Covariant t => Pointable t where-	point :: a -> t a+	point :: a |-> t  instance Pointable ((->) e) where 	point = (!)
Pandora/Pattern/Functor/Representable.hs view
@@ -1,5 +1,6 @@ module Pandora.Pattern.Functor.Representable (Representable (..)) where +import Pandora.Core.Functor (type (<-|)) import Pandora.Core.Morphism (identity, (%)) import Pandora.Pattern.Functor.Pointable (Pointable) @@ -15,7 +16,7 @@ 	{-# MINIMAL (<#>), tabulate #-} 	type Representation t :: * 	-- | Infix and flipped version of 'index'-	(<#>) :: Representation t -> t a -> a+	(<#>) :: Representation t -> a <-| t 	-- Build with a function which describes value 	tabulate :: (Representation t -> a) -> t a 	-- | Prefix and flipped version of '<#>'
Pandora/Pattern/Functor/Traversable.hs view
@@ -28,7 +28,7 @@ 	traverse :: (Pointable u, Applicative u) => (a -> u b) -> t a -> u :. t := b 	traverse f t = t ->> f 	-- | The dual of 'distribute'-	sequence :: (Pointable u, Applicative u) => (t :. u) a -> u :. t := a+	sequence :: (Pointable u, Applicative u) => t :. u := a -> u :. t := a 	sequence t = t ->> identity  	-- | Infix versions of `traverse` with various nesting levels
pandora.cabal view
@@ -1,5 +1,5 @@ name:                pandora-version:             0.2.1+version:             0.2.2 synopsis:            A box of patterns and paradigms description:         Humble attempt to define a library for problem solving based on math abstractions. homepage:            https://github.com/iokasimov/pandora@@ -55,6 +55,7 @@     Pandora.Paradigm.Controlflow.Joint     Pandora.Paradigm.Controlflow.Joint.Interpreted     Pandora.Paradigm.Controlflow.Joint.Transformer+    Pandora.Paradigm.Controlflow.Joint.Adaptable     Pandora.Paradigm.Controlflow.Joint.Schemes     Pandora.Paradigm.Controlflow.Joint.Schemes.TU     Pandora.Paradigm.Controlflow.Joint.Schemes.TUV@@ -65,9 +66,10 @@     Pandora.Paradigm.Controlflow.Pipeline     -- Tools for datastructures     Pandora.Paradigm.Inventory-    Pandora.Paradigm.Inventory.Environmental+    Pandora.Paradigm.Inventory.Accumulator+    Pandora.Paradigm.Inventory.Environment     Pandora.Paradigm.Inventory.Optics-    Pandora.Paradigm.Inventory.Stateful+    Pandora.Paradigm.Inventory.State     Pandora.Paradigm.Inventory.Storage     -- Tree-based datastructures     Pandora.Paradigm.Structure@@ -117,5 +119,6 @@     FlexibleContexts, FlexibleInstances, KindSignatures, LiberalTypeSynonyms     MultiParamTypeClasses, NoImplicitPrelude, PackageImports, PolyKinds, RankNTypes     ScopedTypeVariables, TypeApplications, TypeFamilies, TypeFamilyDependencies, TypeOperators+    UndecidableInstances   default-language: Haskell2010   ghc-options: -Wall -fno-warn-tabs