pandora 0.1.7 → 0.1.8
raw patch · 20 files changed
+549/−364 lines, 20 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Pandora.Paradigm.Basis.Conclusion: instance (Pandora.Pattern.Functor.Pointable.Pointable t, Pandora.Pattern.Functor.Bindable.Bindable t) => Pandora.Pattern.Functor.Bindable.Bindable (Pandora.Paradigm.Basis.Conclusion.Conclusion e Pandora.Paradigm.Junction.Transformer.:!: t)
- Pandora.Paradigm.Basis.Conclusion: instance Pandora.Pattern.Functor.Monad.Monad t => Pandora.Pattern.Functor.Monad.Monad (Pandora.Paradigm.Basis.Conclusion.Conclusion e Pandora.Paradigm.Junction.Transformer.:!: t)
- Pandora.Paradigm.Basis.Jet: infixr 5 :-
- Pandora.Paradigm.Basis.Maybe: instance (Pandora.Pattern.Functor.Pointable.Pointable t, Pandora.Pattern.Functor.Bindable.Bindable t) => Pandora.Pattern.Functor.Bindable.Bindable (Pandora.Paradigm.Basis.Maybe.Maybe Pandora.Paradigm.Junction.Transformer.:!: t)
- Pandora.Paradigm.Basis.Maybe: instance Pandora.Pattern.Functor.Monad.Monad t => Pandora.Pattern.Functor.Monad.Monad (Pandora.Paradigm.Basis.Maybe.Maybe Pandora.Paradigm.Junction.Transformer.:!: t)
- Pandora.Paradigm.Junction.Composition: U :: (t :.: u) a -> U ct cu t u a
- Pandora.Paradigm.Junction.Composition: UU :: (t :.: (u :.: v)) a -> UU ct cu cv t u v a
- Pandora.Paradigm.Junction.Composition: UUU :: (t :.: (u :.: (v :.: w))) a -> UUU ct cu cv cw t u v w a
- Pandora.Paradigm.Junction.Composition: [u] :: U ct cu t u a -> (t :.: u) a
- Pandora.Paradigm.Junction.Composition: [uu] :: UU ct cu cv t u v a -> (t :.: (u :.: v)) a
- Pandora.Paradigm.Junction.Composition: [uuu] :: UUU ct cu cv cw t u v w a -> (t :.: (u :.: (v :.: w))) a
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Alternative.Alternative t, Pandora.Pattern.Functor.Covariant.Covariant u) => Pandora.Pattern.Functor.Alternative.Alternative (Pandora.Paradigm.Junction.Composition.U 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Alternative.Alternative t, Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Covariant.Covariant v) => Pandora.Pattern.Functor.Alternative.Alternative (Pandora.Paradigm.Junction.Composition.UU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Alternative.Alternative t, Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Covariant.Covariant v, Pandora.Pattern.Functor.Covariant.Covariant w) => Pandora.Pattern.Functor.Alternative.Alternative (Pandora.Paradigm.Junction.Composition.UUU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v w)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Applicative.Applicative t, Pandora.Pattern.Functor.Applicative.Applicative u) => Pandora.Pattern.Functor.Applicative.Applicative (Pandora.Paradigm.Junction.Composition.U 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Applicative.Applicative t, Pandora.Pattern.Functor.Applicative.Applicative u, Pandora.Pattern.Functor.Applicative.Applicative v) => Pandora.Pattern.Functor.Applicative.Applicative (Pandora.Paradigm.Junction.Composition.UU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Applicative.Applicative t, Pandora.Pattern.Functor.Applicative.Applicative u, Pandora.Pattern.Functor.Applicative.Applicative v, Pandora.Pattern.Functor.Applicative.Applicative w) => Pandora.Pattern.Functor.Applicative.Applicative (Pandora.Paradigm.Junction.Composition.UUU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v w)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Avoidable.Avoidable t, Pandora.Pattern.Functor.Covariant.Covariant u) => Pandora.Pattern.Functor.Avoidable.Avoidable (Pandora.Paradigm.Junction.Composition.U 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Avoidable.Avoidable t, Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Covariant.Covariant v) => Pandora.Pattern.Functor.Avoidable.Avoidable (Pandora.Paradigm.Junction.Composition.UU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Avoidable.Avoidable t, Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Covariant.Covariant v, Pandora.Pattern.Functor.Covariant.Covariant w) => Pandora.Pattern.Functor.Avoidable.Avoidable (Pandora.Paradigm.Junction.Composition.UUU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v w)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Contravariant.Contravariant t, Pandora.Pattern.Functor.Contravariant.Contravariant u) => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Composition.U 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra t u)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Contravariant.Contravariant t, Pandora.Pattern.Functor.Contravariant.Contravariant u, Pandora.Pattern.Functor.Contravariant.Contravariant v) => Pandora.Pattern.Functor.Contravariant.Contravariant (Pandora.Paradigm.Junction.Composition.UU 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra t u v)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Contravariant.Contravariant t, Pandora.Pattern.Functor.Contravariant.Contravariant u, Pandora.Pattern.Functor.Contravariant.Contravariant v, Pandora.Pattern.Functor.Contravariant.Contravariant w) => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Composition.UUU 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra t u v w)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Contravariant.Contravariant t, Pandora.Pattern.Functor.Contravariant.Contravariant u, Pandora.Pattern.Functor.Contravariant.Contravariant v, Pandora.Pattern.Functor.Covariant.Covariant w) => Pandora.Pattern.Functor.Contravariant.Contravariant (Pandora.Paradigm.Junction.Composition.UUU 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co t u v w)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Contravariant.Contravariant t, Pandora.Pattern.Functor.Contravariant.Contravariant u, Pandora.Pattern.Functor.Covariant.Covariant v) => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Composition.UU 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co t u v)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Contravariant.Contravariant t, Pandora.Pattern.Functor.Contravariant.Contravariant u, Pandora.Pattern.Functor.Covariant.Covariant v, Pandora.Pattern.Functor.Contravariant.Contravariant w) => Pandora.Pattern.Functor.Contravariant.Contravariant (Pandora.Paradigm.Junction.Composition.UUU 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra t u v w)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Contravariant.Contravariant t, Pandora.Pattern.Functor.Contravariant.Contravariant u, Pandora.Pattern.Functor.Covariant.Covariant v, Pandora.Pattern.Functor.Covariant.Covariant w) => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Composition.UUU 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v w)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Contravariant.Contravariant t, Pandora.Pattern.Functor.Covariant.Covariant u) => Pandora.Pattern.Functor.Contravariant.Contravariant (Pandora.Paradigm.Junction.Composition.U 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co t u)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Contravariant.Contravariant t, Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Contravariant.Contravariant v) => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Composition.UU 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra t u v)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Contravariant.Contravariant t, Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Contravariant.Contravariant v, Pandora.Pattern.Functor.Contravariant.Contravariant w) => Pandora.Pattern.Functor.Contravariant.Contravariant (Pandora.Paradigm.Junction.Composition.UUU 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra t u v w)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Contravariant.Contravariant t, Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Contravariant.Contravariant v, Pandora.Pattern.Functor.Covariant.Covariant w) => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Composition.UUU 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co t u v w)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Contravariant.Contravariant t, Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Covariant.Covariant v) => Pandora.Pattern.Functor.Contravariant.Contravariant (Pandora.Paradigm.Junction.Composition.UU 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Contravariant.Contravariant t, Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Covariant.Covariant v, Pandora.Pattern.Functor.Contravariant.Contravariant w) => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Composition.UUU 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra t u v w)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Contravariant.Contravariant t, Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Covariant.Covariant v, Pandora.Pattern.Functor.Covariant.Covariant w) => Pandora.Pattern.Functor.Contravariant.Contravariant (Pandora.Paradigm.Junction.Composition.UUU 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v w)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Contravariant.Contravariant u) => Pandora.Pattern.Functor.Contravariant.Contravariant (Pandora.Paradigm.Junction.Composition.U 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra t u)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Contravariant.Contravariant u, Pandora.Pattern.Functor.Contravariant.Contravariant v) => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Composition.UU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra t u v)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Contravariant.Contravariant u, Pandora.Pattern.Functor.Contravariant.Contravariant v, Pandora.Pattern.Functor.Contravariant.Contravariant w) => Pandora.Pattern.Functor.Contravariant.Contravariant (Pandora.Paradigm.Junction.Composition.UUU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra t u v w)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Contravariant.Contravariant u, Pandora.Pattern.Functor.Contravariant.Contravariant v, Pandora.Pattern.Functor.Covariant.Covariant w) => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Composition.UUU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co t u v w)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Contravariant.Contravariant u, Pandora.Pattern.Functor.Covariant.Covariant v) => Pandora.Pattern.Functor.Contravariant.Contravariant (Pandora.Paradigm.Junction.Composition.UU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co t u v)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Contravariant.Contravariant u, Pandora.Pattern.Functor.Covariant.Covariant v, Pandora.Pattern.Functor.Contravariant.Contravariant w) => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Composition.UUU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra t u v w)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Contravariant.Contravariant u, Pandora.Pattern.Functor.Covariant.Covariant v, Pandora.Pattern.Functor.Covariant.Covariant w) => Pandora.Pattern.Functor.Contravariant.Contravariant (Pandora.Paradigm.Junction.Composition.UUU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v w)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Covariant.Covariant u) => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Composition.U 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Contravariant.Contravariant v) => Pandora.Pattern.Functor.Contravariant.Contravariant (Pandora.Paradigm.Junction.Composition.UU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra t u v)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Contravariant.Contravariant v, Pandora.Pattern.Functor.Contravariant.Contravariant w) => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Composition.UUU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra t u v w)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Contravariant.Contravariant v, Pandora.Pattern.Functor.Covariant.Covariant w) => Pandora.Pattern.Functor.Contravariant.Contravariant (Pandora.Paradigm.Junction.Composition.UUU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co t u v w)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Covariant.Covariant v) => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Composition.UU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Covariant.Covariant v, Pandora.Pattern.Functor.Contravariant.Contravariant w) => Pandora.Pattern.Functor.Contravariant.Contravariant (Pandora.Paradigm.Junction.Composition.UUU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra t u v w)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Covariant.Covariant v, Pandora.Pattern.Functor.Covariant.Covariant w) => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Composition.UUU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v w)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Distributive.Distributive t, Pandora.Pattern.Functor.Distributive.Distributive u) => Pandora.Pattern.Functor.Distributive.Distributive (Pandora.Paradigm.Junction.Composition.U 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Distributive.Distributive t, Pandora.Pattern.Functor.Distributive.Distributive u, Pandora.Pattern.Functor.Distributive.Distributive v) => Pandora.Pattern.Functor.Distributive.Distributive (Pandora.Paradigm.Junction.Composition.UU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Distributive.Distributive t, Pandora.Pattern.Functor.Distributive.Distributive u, Pandora.Pattern.Functor.Distributive.Distributive v, Pandora.Pattern.Functor.Distributive.Distributive w) => Pandora.Pattern.Functor.Distributive.Distributive (Pandora.Paradigm.Junction.Composition.UUU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v w)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Extractable.Extractable t, Pandora.Pattern.Functor.Extractable.Extractable u) => Pandora.Pattern.Functor.Extractable.Extractable (Pandora.Paradigm.Junction.Composition.U 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Extractable.Extractable t, Pandora.Pattern.Functor.Extractable.Extractable u, Pandora.Pattern.Functor.Extractable.Extractable v) => Pandora.Pattern.Functor.Extractable.Extractable (Pandora.Paradigm.Junction.Composition.UU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Extractable.Extractable t, Pandora.Pattern.Functor.Extractable.Extractable u, Pandora.Pattern.Functor.Extractable.Extractable v, Pandora.Pattern.Functor.Extractable.Extractable w) => Pandora.Pattern.Functor.Extractable.Extractable (Pandora.Paradigm.Junction.Composition.UUU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v w)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Pointable.Pointable t, Pandora.Pattern.Functor.Pointable.Pointable u) => Pandora.Pattern.Functor.Pointable.Pointable (Pandora.Paradigm.Junction.Composition.U 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Pointable.Pointable t, Pandora.Pattern.Functor.Pointable.Pointable u, Pandora.Pattern.Functor.Pointable.Pointable v) => Pandora.Pattern.Functor.Pointable.Pointable (Pandora.Paradigm.Junction.Composition.UU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Pointable.Pointable t, Pandora.Pattern.Functor.Pointable.Pointable u, Pandora.Pattern.Functor.Pointable.Pointable v, Pandora.Pattern.Functor.Pointable.Pointable w) => Pandora.Pattern.Functor.Pointable.Pointable (Pandora.Paradigm.Junction.Composition.UUU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v w)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Traversable.Traversable t, Pandora.Pattern.Functor.Traversable.Traversable u) => Pandora.Pattern.Functor.Traversable.Traversable (Pandora.Paradigm.Junction.Composition.U 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Traversable.Traversable t, Pandora.Pattern.Functor.Traversable.Traversable u, Pandora.Pattern.Functor.Traversable.Traversable v) => Pandora.Pattern.Functor.Traversable.Traversable (Pandora.Paradigm.Junction.Composition.UU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v)
- Pandora.Paradigm.Junction.Composition: instance (Pandora.Pattern.Functor.Traversable.Traversable t, Pandora.Pattern.Functor.Traversable.Traversable u, Pandora.Pattern.Functor.Traversable.Traversable v, Pandora.Pattern.Functor.Traversable.Traversable w) => Pandora.Pattern.Functor.Traversable.Traversable (Pandora.Paradigm.Junction.Composition.UUU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v w)
- Pandora.Paradigm.Junction.Composition: instance (t Pandora.Paradigm.Junction.Composition.:-|: u, v Pandora.Paradigm.Junction.Composition.:-|: w) => Pandora.Pattern.Functor.Adjoint.Adjoint (Pandora.Paradigm.Junction.Composition.U 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t v) (Pandora.Paradigm.Junction.Composition.U 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co u w)
- Pandora.Paradigm.Junction.Composition: instance (t Pandora.Paradigm.Junction.Composition.:-|: u, v Pandora.Paradigm.Junction.Composition.:-|: w, q Pandora.Paradigm.Junction.Composition.:-|: q, r Pandora.Paradigm.Junction.Composition.:-|: s) => Pandora.Pattern.Functor.Adjoint.Adjoint (Pandora.Paradigm.Junction.Composition.UUU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t v q r) (Pandora.Paradigm.Junction.Composition.UUU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co u w q s)
- Pandora.Paradigm.Junction.Composition: instance (t Pandora.Paradigm.Junction.Composition.:-|: w, v Pandora.Paradigm.Junction.Composition.:-|: x, u Pandora.Paradigm.Junction.Composition.:-|: y) => Pandora.Pattern.Functor.Adjoint.Adjoint (Pandora.Paradigm.Junction.Composition.UU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t v u) (Pandora.Paradigm.Junction.Composition.UU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co w x y)
- Pandora.Paradigm.Junction.Composition: newtype U ct cu t u a
- Pandora.Paradigm.Junction.Composition: newtype UU ct cu cv t u v a
- Pandora.Paradigm.Junction.Composition: newtype UUU ct cu cv cw t u v w a
- Pandora.Paradigm.Junction.Transformer: T :: (u :.: t) a -> T t u a
- Pandora.Paradigm.Junction.Transformer: Y :: (u :.: t u) a -> Y t u a
- Pandora.Paradigm.Junction.Transformer: [t] :: T t u a -> (u :.: t) a
- Pandora.Paradigm.Junction.Transformer: [y] :: Y t u a -> (u :.: t u) a
- Pandora.Paradigm.Junction.Transformer: infixr 0 :>:
- Pandora.Paradigm.Junction.Transformer: instance (Pandora.Pattern.Functor.Applicative.Applicative (t u), Pandora.Pattern.Functor.Applicative.Applicative u) => Pandora.Pattern.Functor.Applicative.Applicative (Pandora.Paradigm.Junction.Transformer.Y t u)
- Pandora.Paradigm.Junction.Transformer: instance (Pandora.Pattern.Functor.Applicative.Applicative t, Pandora.Pattern.Functor.Applicative.Applicative u) => Pandora.Pattern.Functor.Applicative.Applicative (Pandora.Paradigm.Junction.Transformer.T t u)
- Pandora.Paradigm.Junction.Transformer: instance (Pandora.Pattern.Functor.Covariant.Covariant (t u), Pandora.Pattern.Functor.Alternative.Alternative u) => Pandora.Pattern.Functor.Alternative.Alternative (Pandora.Paradigm.Junction.Transformer.Y t u)
- Pandora.Paradigm.Junction.Transformer: instance (Pandora.Pattern.Functor.Covariant.Covariant (t u), Pandora.Pattern.Functor.Avoidable.Avoidable u) => Pandora.Pattern.Functor.Avoidable.Avoidable (Pandora.Paradigm.Junction.Transformer.Y t u)
- Pandora.Paradigm.Junction.Transformer: instance (Pandora.Pattern.Functor.Covariant.Covariant (t u), Pandora.Pattern.Functor.Covariant.Covariant u) => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Transformer.Y t u)
- Pandora.Paradigm.Junction.Transformer: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Alternative.Alternative u) => Pandora.Pattern.Functor.Alternative.Alternative (Pandora.Paradigm.Junction.Transformer.T t u)
- Pandora.Paradigm.Junction.Transformer: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Avoidable.Avoidable u) => Pandora.Pattern.Functor.Avoidable.Avoidable (Pandora.Paradigm.Junction.Transformer.T t u)
- Pandora.Paradigm.Junction.Transformer: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Covariant.Covariant u) => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Transformer.T t u)
- Pandora.Paradigm.Junction.Transformer: instance (Pandora.Pattern.Functor.Distributive.Distributive (t u), Pandora.Pattern.Functor.Distributive.Distributive u) => Pandora.Pattern.Functor.Distributive.Distributive (Pandora.Paradigm.Junction.Transformer.Y t u)
- Pandora.Paradigm.Junction.Transformer: instance (Pandora.Pattern.Functor.Distributive.Distributive t, Pandora.Pattern.Functor.Distributive.Distributive u) => Pandora.Pattern.Functor.Distributive.Distributive (Pandora.Paradigm.Junction.Transformer.T t u)
- Pandora.Paradigm.Junction.Transformer: instance (Pandora.Pattern.Functor.Extractable.Extractable (t u), Pandora.Pattern.Functor.Extractable.Extractable u) => Pandora.Pattern.Functor.Extractable.Extractable (Pandora.Paradigm.Junction.Transformer.Y t u)
- Pandora.Paradigm.Junction.Transformer: instance (Pandora.Pattern.Functor.Extractable.Extractable t, Pandora.Pattern.Functor.Extractable.Extractable u) => Pandora.Pattern.Functor.Extractable.Extractable (Pandora.Paradigm.Junction.Transformer.T t u)
- Pandora.Paradigm.Junction.Transformer: instance (Pandora.Pattern.Functor.Pointable.Pointable (t u), Pandora.Pattern.Functor.Pointable.Pointable u) => Pandora.Pattern.Functor.Pointable.Pointable (Pandora.Paradigm.Junction.Transformer.Y t u)
- Pandora.Paradigm.Junction.Transformer: instance (Pandora.Pattern.Functor.Pointable.Pointable t, Pandora.Pattern.Functor.Pointable.Pointable u) => Pandora.Pattern.Functor.Pointable.Pointable (Pandora.Paradigm.Junction.Transformer.T t u)
- Pandora.Paradigm.Junction.Transformer: instance (Pandora.Pattern.Functor.Traversable.Traversable (t u), Pandora.Pattern.Functor.Traversable.Traversable u) => Pandora.Pattern.Functor.Traversable.Traversable (Pandora.Paradigm.Junction.Transformer.Y t u)
- Pandora.Paradigm.Junction.Transformer: instance (Pandora.Pattern.Functor.Traversable.Traversable t, Pandora.Pattern.Functor.Traversable.Traversable u) => Pandora.Pattern.Functor.Traversable.Traversable (Pandora.Paradigm.Junction.Transformer.T t u)
- Pandora.Paradigm.Junction.Transformer: instance (forall (u' :: * -> *). Pandora.Pattern.Functor.Extractable.Extractable u', Pandora.Pattern.Functor.Lowerable.Lowerable t) => Pandora.Pattern.Functor.Lowerable.Lowerable (Pandora.Paradigm.Junction.Transformer.Y t)
- Pandora.Paradigm.Junction.Transformer: instance (forall (u' :: * -> *). Pandora.Pattern.Functor.Pointable.Pointable u', Pandora.Pattern.Functor.Liftable.Liftable t) => Pandora.Pattern.Functor.Liftable.Liftable (Pandora.Paradigm.Junction.Transformer.Y t)
- Pandora.Paradigm.Junction.Transformer: instance Pandora.Pattern.Functor.Extractable.Extractable t => Pandora.Pattern.Functor.Lowerable.Lowerable (Pandora.Paradigm.Junction.Transformer.T t)
- Pandora.Paradigm.Junction.Transformer: instance Pandora.Pattern.Functor.Pointable.Pointable t => Pandora.Pattern.Functor.Liftable.Liftable (Pandora.Paradigm.Junction.Transformer.T t)
- Pandora.Paradigm.Junction.Transformer: instance forall k1 k2 (t :: (k2 -> *) -> k1 -> k2) (a :: k1) (u :: k2 -> *). (forall (u' :: k2 -> *). Pandora.Pattern.Object.Chain.Chain ((Pandora.Core.Functor.:.:) u' (t u') a)) => Pandora.Pattern.Object.Chain.Chain (Pandora.Paradigm.Junction.Transformer.Y t u a)
- Pandora.Paradigm.Junction.Transformer: instance forall k1 k2 (t :: (k2 -> *) -> k1 -> k2) (a :: k1) (u :: k2 -> *). (forall (u' :: k2 -> *). Pandora.Pattern.Object.Monoid.Monoid ((Pandora.Core.Functor.:.:) u' (t u') a)) => Pandora.Pattern.Object.Monoid.Monoid (Pandora.Paradigm.Junction.Transformer.Y t u a)
- Pandora.Paradigm.Junction.Transformer: instance forall k1 k2 (t :: (k2 -> *) -> k1 -> k2) (a :: k1) (u :: k2 -> *). (forall (u' :: k2 -> *). Pandora.Pattern.Object.Semigroup.Semigroup ((Pandora.Core.Functor.:.:) u' (t u') a)) => Pandora.Pattern.Object.Semigroup.Semigroup (Pandora.Paradigm.Junction.Transformer.Y t u a)
- Pandora.Paradigm.Junction.Transformer: instance forall k1 k2 (t :: (k2 -> *) -> k1 -> k2) (a :: k1) (u :: k2 -> *). (forall (u' :: k2 -> *). Pandora.Pattern.Object.Setoid.Setoid ((Pandora.Core.Functor.:.:) u' (t u') a)) => Pandora.Pattern.Object.Setoid.Setoid (Pandora.Paradigm.Junction.Transformer.Y t u a)
- Pandora.Paradigm.Junction.Transformer: instance forall k1 k2 (u :: k2 -> *) (t :: k1 -> k2) (a :: k1). Pandora.Pattern.Object.Chain.Chain ((Pandora.Core.Functor.:.:) u t a) => Pandora.Pattern.Object.Chain.Chain (Pandora.Paradigm.Junction.Transformer.T t u a)
- Pandora.Paradigm.Junction.Transformer: instance forall k1 k2 (u :: k2 -> *) (t :: k1 -> k2) (a :: k1). Pandora.Pattern.Object.Monoid.Monoid ((Pandora.Core.Functor.:.:) u t a) => Pandora.Pattern.Object.Monoid.Monoid (Pandora.Paradigm.Junction.Transformer.T t u a)
- Pandora.Paradigm.Junction.Transformer: instance forall k1 k2 (u :: k2 -> *) (t :: k1 -> k2) (a :: k1). Pandora.Pattern.Object.Semigroup.Semigroup ((Pandora.Core.Functor.:.:) u t a) => Pandora.Pattern.Object.Semigroup.Semigroup (Pandora.Paradigm.Junction.Transformer.T t u a)
- Pandora.Paradigm.Junction.Transformer: instance forall k1 k2 (u :: k2 -> *) (t :: k1 -> k2) (a :: k1). Pandora.Pattern.Object.Setoid.Setoid ((Pandora.Core.Functor.:.:) u t a) => Pandora.Pattern.Object.Setoid.Setoid (Pandora.Paradigm.Junction.Transformer.T t u a)
- Pandora.Paradigm.Junction.Transformer: newtype T t u a
- Pandora.Paradigm.Junction.Transformer: newtype Y t u a
- Pandora.Paradigm.Junction.Transformer: type (:>:) t u = Y t u
- Pandora.Paradigm.Junction.Transformer: up :: Pointable u => t a -> T t u a
+ Pandora.Paradigm.Basis.Conclusion: instance (Pandora.Pattern.Functor.Pointable.Pointable u, Pandora.Pattern.Functor.Bindable.Bindable u) => Pandora.Pattern.Functor.Bindable.Bindable (Pandora.Paradigm.Junction.Schemes.UT.UT (Pandora.Paradigm.Basis.Conclusion.Conclusion e) () (Pandora.Paradigm.Basis.Conclusion.Conclusion e) u)
+ Pandora.Paradigm.Basis.Conclusion: instance Pandora.Paradigm.Junction.Composition.Composition (Pandora.Paradigm.Basis.Conclusion.Conclusion e)
+ Pandora.Paradigm.Basis.Conclusion: instance Pandora.Paradigm.Junction.Transformer.Transformer (Pandora.Paradigm.Basis.Conclusion.Conclusion e)
+ Pandora.Paradigm.Basis.Conclusion: instance Pandora.Pattern.Functor.Applicative.Applicative u => Pandora.Pattern.Functor.Applicative.Applicative (Pandora.Paradigm.Junction.Schemes.UT.UT (Pandora.Paradigm.Basis.Conclusion.Conclusion e) () (Pandora.Paradigm.Basis.Conclusion.Conclusion e) u)
+ Pandora.Paradigm.Basis.Conclusion: instance Pandora.Pattern.Functor.Covariant.Covariant u => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Schemes.UT.UT (Pandora.Paradigm.Basis.Conclusion.Conclusion e) () (Pandora.Paradigm.Basis.Conclusion.Conclusion e) u)
+ Pandora.Paradigm.Basis.Conclusion: instance Pandora.Pattern.Functor.Monad.Monad u => Pandora.Pattern.Functor.Monad.Monad (Pandora.Paradigm.Junction.Schemes.UT.UT (Pandora.Paradigm.Basis.Conclusion.Conclusion e) () (Pandora.Paradigm.Basis.Conclusion.Conclusion e) u)
+ Pandora.Paradigm.Basis.Conclusion: instance Pandora.Pattern.Functor.Pointable.Pointable u => Pandora.Pattern.Functor.Pointable.Pointable (Pandora.Paradigm.Junction.Schemes.UT.UT (Pandora.Paradigm.Basis.Conclusion.Conclusion e) () (Pandora.Paradigm.Basis.Conclusion.Conclusion e) u)
+ Pandora.Paradigm.Basis.Jet: infixr 6 :-
+ Pandora.Paradigm.Basis.Maybe: instance (Pandora.Pattern.Functor.Pointable.Pointable u, Pandora.Pattern.Functor.Bindable.Bindable u) => Pandora.Pattern.Functor.Bindable.Bindable (Pandora.Paradigm.Junction.Schemes.UT.UT Pandora.Paradigm.Basis.Maybe.Maybe () Pandora.Paradigm.Basis.Maybe.Maybe u)
+ Pandora.Paradigm.Basis.Maybe: instance Pandora.Paradigm.Junction.Composition.Composition Pandora.Paradigm.Basis.Maybe.Maybe
+ Pandora.Paradigm.Basis.Maybe: instance Pandora.Paradigm.Junction.Transformer.Transformer Pandora.Paradigm.Basis.Maybe.Maybe
+ Pandora.Paradigm.Basis.Maybe: instance Pandora.Pattern.Functor.Applicative.Applicative u => Pandora.Pattern.Functor.Applicative.Applicative (Pandora.Paradigm.Junction.Schemes.UT.UT Pandora.Paradigm.Basis.Maybe.Maybe () Pandora.Paradigm.Basis.Maybe.Maybe u)
+ Pandora.Paradigm.Basis.Maybe: instance Pandora.Pattern.Functor.Covariant.Covariant u => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Schemes.UT.UT Pandora.Paradigm.Basis.Maybe.Maybe () Pandora.Paradigm.Basis.Maybe.Maybe u)
+ Pandora.Paradigm.Basis.Maybe: instance Pandora.Pattern.Functor.Monad.Monad u => Pandora.Pattern.Functor.Monad.Monad (Pandora.Paradigm.Junction.Schemes.UT.UT Pandora.Paradigm.Basis.Maybe.Maybe () Pandora.Paradigm.Basis.Maybe.Maybe u)
+ Pandora.Paradigm.Basis.Maybe: instance Pandora.Pattern.Functor.Pointable.Pointable u => Pandora.Pattern.Functor.Pointable.Pointable (Pandora.Paradigm.Junction.Schemes.UT.UT Pandora.Paradigm.Basis.Maybe.Maybe () Pandora.Paradigm.Basis.Maybe.Maybe u)
+ Pandora.Paradigm.Inventory.Stateful: instance Pandora.Paradigm.Junction.Composition.Composition (Pandora.Paradigm.Inventory.Stateful.Stateful s)
+ Pandora.Paradigm.Inventory.Stateful: instance Pandora.Paradigm.Junction.Transformer.Transformer (Pandora.Paradigm.Inventory.Stateful.Stateful s)
+ Pandora.Paradigm.Inventory.Stateful: instance Pandora.Pattern.Functor.Bindable.Bindable u => Pandora.Pattern.Functor.Applicative.Applicative (Pandora.Paradigm.Junction.Schemes.TUV.TUV Pandora.Paradigm.Inventory.Stateful.Stateful () Pandora.Paradigm.Inventory.Stateful.Stateful ((->) 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.Junction.Schemes.TUV.TUV Pandora.Paradigm.Inventory.Stateful.Stateful () Pandora.Paradigm.Inventory.Stateful.Stateful ((->) s) u ((Pandora.Paradigm.Basis.Product.:*:) s))
+ Pandora.Paradigm.Inventory.Stateful: instance Pandora.Pattern.Functor.Covariant.Covariant u => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Schemes.TUV.TUV Pandora.Paradigm.Inventory.Stateful.Stateful () Pandora.Paradigm.Inventory.Stateful.Stateful ((->) s) u ((Pandora.Paradigm.Basis.Product.:*:) s))
+ Pandora.Paradigm.Inventory.Stateful: instance Pandora.Pattern.Functor.Monad.Monad u => Pandora.Pattern.Functor.Monad.Monad (Pandora.Paradigm.Junction.Schemes.TUV.TUV Pandora.Paradigm.Inventory.Stateful.Stateful () Pandora.Paradigm.Inventory.Stateful.Stateful ((->) s) u ((Pandora.Paradigm.Basis.Product.:*:) s))
+ Pandora.Paradigm.Inventory.Stateful: instance Pandora.Pattern.Functor.Pointable.Pointable u => Pandora.Pattern.Functor.Pointable.Pointable (Pandora.Paradigm.Junction.Schemes.TUV.TUV Pandora.Paradigm.Inventory.Stateful.Stateful () Pandora.Paradigm.Inventory.Stateful.Stateful ((->) s) u ((Pandora.Paradigm.Basis.Product.:*:) s))
+ Pandora.Paradigm.Junction.Composition: class Composition t where {
+ Pandora.Paradigm.Junction.Composition: composition :: Composition t => t a -> Outline t a
+ Pandora.Paradigm.Junction.Composition: type family Outline t a :: *;
+ Pandora.Paradigm.Junction.Composition: }
+ Pandora.Paradigm.Junction.Schemes.TU: TU :: ((t :.: u) >< a) -> TU ct cu t u a
+ Pandora.Paradigm.Junction.Schemes.TU: instance (Pandora.Pattern.Functor.Alternative.Alternative t, Pandora.Pattern.Functor.Covariant.Covariant u) => Pandora.Pattern.Functor.Alternative.Alternative (Pandora.Paradigm.Junction.Schemes.TU.TU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u)
+ Pandora.Paradigm.Junction.Schemes.TU: instance (Pandora.Pattern.Functor.Applicative.Applicative t, Pandora.Pattern.Functor.Applicative.Applicative u) => Pandora.Pattern.Functor.Applicative.Applicative (Pandora.Paradigm.Junction.Schemes.TU.TU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u)
+ Pandora.Paradigm.Junction.Schemes.TU: instance (Pandora.Pattern.Functor.Avoidable.Avoidable t, Pandora.Pattern.Functor.Covariant.Covariant u) => Pandora.Pattern.Functor.Avoidable.Avoidable (Pandora.Paradigm.Junction.Schemes.TU.TU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u)
+ Pandora.Paradigm.Junction.Schemes.TU: instance (Pandora.Pattern.Functor.Contravariant.Contravariant t, Pandora.Pattern.Functor.Contravariant.Contravariant u) => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Schemes.TU.TU 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra t u)
+ Pandora.Paradigm.Junction.Schemes.TU: instance (Pandora.Pattern.Functor.Contravariant.Contravariant t, Pandora.Pattern.Functor.Covariant.Covariant u) => Pandora.Pattern.Functor.Contravariant.Contravariant (Pandora.Paradigm.Junction.Schemes.TU.TU 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co t u)
+ Pandora.Paradigm.Junction.Schemes.TU: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Contravariant.Contravariant u) => Pandora.Pattern.Functor.Contravariant.Contravariant (Pandora.Paradigm.Junction.Schemes.TU.TU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra t u)
+ Pandora.Paradigm.Junction.Schemes.TU: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Covariant.Covariant u) => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Schemes.TU.TU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u)
+ Pandora.Paradigm.Junction.Schemes.TU: instance (Pandora.Pattern.Functor.Distributive.Distributive t, Pandora.Pattern.Functor.Distributive.Distributive u) => Pandora.Pattern.Functor.Distributive.Distributive (Pandora.Paradigm.Junction.Schemes.TU.TU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u)
+ Pandora.Paradigm.Junction.Schemes.TU: instance (Pandora.Pattern.Functor.Extractable.Extractable t, Pandora.Pattern.Functor.Extractable.Extractable u) => Pandora.Pattern.Functor.Extractable.Extractable (Pandora.Paradigm.Junction.Schemes.TU.TU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u)
+ Pandora.Paradigm.Junction.Schemes.TU: instance (Pandora.Pattern.Functor.Pointable.Pointable t, Pandora.Pattern.Functor.Pointable.Pointable u) => Pandora.Pattern.Functor.Pointable.Pointable (Pandora.Paradigm.Junction.Schemes.TU.TU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u)
+ Pandora.Paradigm.Junction.Schemes.TU: instance (Pandora.Pattern.Functor.Traversable.Traversable t, Pandora.Pattern.Functor.Traversable.Traversable u) => Pandora.Pattern.Functor.Traversable.Traversable (Pandora.Paradigm.Junction.Schemes.TU.TU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u)
+ Pandora.Paradigm.Junction.Schemes.TU: instance (t Pandora.Paradigm.Junction.Schemes.TU.:-|: u, v Pandora.Paradigm.Junction.Schemes.TU.:-|: w) => Pandora.Pattern.Functor.Adjoint.Adjoint (Pandora.Paradigm.Junction.Schemes.TU.TU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t v) (Pandora.Paradigm.Junction.Schemes.TU.TU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co u w)
+ Pandora.Paradigm.Junction.Schemes.TU: instance forall k1 k2 k3 (ct :: k3) (cu :: k2) (t :: k1 -> *) (u :: * -> k1). Pandora.Paradigm.Junction.Composition.Composition (Pandora.Paradigm.Junction.Schemes.TU.TU ct cu t u)
+ Pandora.Paradigm.Junction.Schemes.TU: newtype TU ct cu t u a
+ Pandora.Paradigm.Junction.Schemes.TUV: TUV :: ((t :.: (u :.: v)) >< a) -> TUV ct cu cv t u v a
+ Pandora.Paradigm.Junction.Schemes.TUV: instance (Pandora.Pattern.Functor.Alternative.Alternative t, Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Covariant.Covariant v) => Pandora.Pattern.Functor.Alternative.Alternative (Pandora.Paradigm.Junction.Schemes.TUV.TUV 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v)
+ Pandora.Paradigm.Junction.Schemes.TUV: instance (Pandora.Pattern.Functor.Applicative.Applicative t, Pandora.Pattern.Functor.Applicative.Applicative u, Pandora.Pattern.Functor.Applicative.Applicative v) => Pandora.Pattern.Functor.Applicative.Applicative (Pandora.Paradigm.Junction.Schemes.TUV.TUV 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v)
+ Pandora.Paradigm.Junction.Schemes.TUV: instance (Pandora.Pattern.Functor.Avoidable.Avoidable t, Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Covariant.Covariant v) => Pandora.Pattern.Functor.Avoidable.Avoidable (Pandora.Paradigm.Junction.Schemes.TUV.TUV 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v)
+ Pandora.Paradigm.Junction.Schemes.TUV: instance (Pandora.Pattern.Functor.Contravariant.Contravariant t, Pandora.Pattern.Functor.Contravariant.Contravariant u, Pandora.Pattern.Functor.Contravariant.Contravariant v) => Pandora.Pattern.Functor.Contravariant.Contravariant (Pandora.Paradigm.Junction.Schemes.TUV.TUV 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra t u v)
+ Pandora.Paradigm.Junction.Schemes.TUV: instance (Pandora.Pattern.Functor.Contravariant.Contravariant t, Pandora.Pattern.Functor.Contravariant.Contravariant u, Pandora.Pattern.Functor.Covariant.Covariant v) => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Schemes.TUV.TUV 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co t u v)
+ Pandora.Paradigm.Junction.Schemes.TUV: instance (Pandora.Pattern.Functor.Contravariant.Contravariant t, Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Contravariant.Contravariant v) => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Schemes.TUV.TUV 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra t u v)
+ Pandora.Paradigm.Junction.Schemes.TUV: instance (Pandora.Pattern.Functor.Contravariant.Contravariant t, Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Covariant.Covariant v) => Pandora.Pattern.Functor.Contravariant.Contravariant (Pandora.Paradigm.Junction.Schemes.TUV.TUV 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v)
+ Pandora.Paradigm.Junction.Schemes.TUV: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Contravariant.Contravariant u, Pandora.Pattern.Functor.Contravariant.Contravariant v) => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Schemes.TUV.TUV 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra t u v)
+ Pandora.Paradigm.Junction.Schemes.TUV: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Contravariant.Contravariant u, Pandora.Pattern.Functor.Covariant.Covariant v) => Pandora.Pattern.Functor.Contravariant.Contravariant (Pandora.Paradigm.Junction.Schemes.TUV.TUV 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co t u v)
+ Pandora.Paradigm.Junction.Schemes.TUV: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Contravariant.Contravariant v) => Pandora.Pattern.Functor.Contravariant.Contravariant (Pandora.Paradigm.Junction.Schemes.TUV.TUV 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra t u v)
+ Pandora.Paradigm.Junction.Schemes.TUV: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Covariant.Covariant v) => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Schemes.TUV.TUV 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v)
+ Pandora.Paradigm.Junction.Schemes.TUV: instance (Pandora.Pattern.Functor.Distributive.Distributive t, Pandora.Pattern.Functor.Distributive.Distributive u, Pandora.Pattern.Functor.Distributive.Distributive v) => Pandora.Pattern.Functor.Distributive.Distributive (Pandora.Paradigm.Junction.Schemes.TUV.TUV 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v)
+ Pandora.Paradigm.Junction.Schemes.TUV: instance (Pandora.Pattern.Functor.Extractable.Extractable t, Pandora.Pattern.Functor.Extractable.Extractable u, Pandora.Pattern.Functor.Extractable.Extractable v) => Pandora.Pattern.Functor.Extractable.Extractable (Pandora.Paradigm.Junction.Schemes.TUV.TUV 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v)
+ Pandora.Paradigm.Junction.Schemes.TUV: instance (Pandora.Pattern.Functor.Pointable.Pointable t, Pandora.Pattern.Functor.Pointable.Pointable u, Pandora.Pattern.Functor.Pointable.Pointable v) => Pandora.Pattern.Functor.Pointable.Pointable (Pandora.Paradigm.Junction.Schemes.TUV.TUV 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v)
+ Pandora.Paradigm.Junction.Schemes.TUV: instance (Pandora.Pattern.Functor.Traversable.Traversable t, Pandora.Pattern.Functor.Traversable.Traversable u, Pandora.Pattern.Functor.Traversable.Traversable v) => Pandora.Pattern.Functor.Traversable.Traversable (Pandora.Paradigm.Junction.Schemes.TUV.TUV 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v)
+ Pandora.Paradigm.Junction.Schemes.TUV: instance (t Pandora.Paradigm.Junction.Schemes.TUV.:-|: w, v Pandora.Paradigm.Junction.Schemes.TUV.:-|: x, u Pandora.Paradigm.Junction.Schemes.TUV.:-|: y) => Pandora.Pattern.Functor.Adjoint.Adjoint (Pandora.Paradigm.Junction.Schemes.TUV.TUV 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t v u) (Pandora.Paradigm.Junction.Schemes.TUV.TUV 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co w x y)
+ Pandora.Paradigm.Junction.Schemes.TUV: instance forall k1 k2 k3 k4 k5 (ct :: k5) (cu :: k4) (cv :: k3) (t :: k2 -> *) (u :: k1 -> k2) (v :: * -> k1). Pandora.Paradigm.Junction.Composition.Composition (Pandora.Paradigm.Junction.Schemes.TUV.TUV ct cu cv t u v)
+ Pandora.Paradigm.Junction.Schemes.TUV: newtype TUV ct cu cv t u v a
+ Pandora.Paradigm.Junction.Schemes.TUVW: TUVW :: ((t :.: (u :.: (v :.: w))) >< a) -> TUVW ct cu cv cw t u v w a
+ Pandora.Paradigm.Junction.Schemes.TUVW: instance (Pandora.Pattern.Functor.Alternative.Alternative t, Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Covariant.Covariant v, Pandora.Pattern.Functor.Covariant.Covariant w) => Pandora.Pattern.Functor.Alternative.Alternative (Pandora.Paradigm.Junction.Schemes.TUVW.TUVW 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v w)
+ Pandora.Paradigm.Junction.Schemes.TUVW: instance (Pandora.Pattern.Functor.Applicative.Applicative t, Pandora.Pattern.Functor.Applicative.Applicative u, Pandora.Pattern.Functor.Applicative.Applicative v, Pandora.Pattern.Functor.Applicative.Applicative w) => Pandora.Pattern.Functor.Applicative.Applicative (Pandora.Paradigm.Junction.Schemes.TUVW.TUVW 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v w)
+ Pandora.Paradigm.Junction.Schemes.TUVW: instance (Pandora.Pattern.Functor.Avoidable.Avoidable t, Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Covariant.Covariant v, Pandora.Pattern.Functor.Covariant.Covariant w) => Pandora.Pattern.Functor.Avoidable.Avoidable (Pandora.Paradigm.Junction.Schemes.TUVW.TUVW 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v w)
+ Pandora.Paradigm.Junction.Schemes.TUVW: instance (Pandora.Pattern.Functor.Contravariant.Contravariant t, Pandora.Pattern.Functor.Contravariant.Contravariant u, Pandora.Pattern.Functor.Contravariant.Contravariant v, Pandora.Pattern.Functor.Contravariant.Contravariant w) => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Schemes.TUVW.TUVW 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra t u v w)
+ Pandora.Paradigm.Junction.Schemes.TUVW: instance (Pandora.Pattern.Functor.Contravariant.Contravariant t, Pandora.Pattern.Functor.Contravariant.Contravariant u, Pandora.Pattern.Functor.Contravariant.Contravariant v, Pandora.Pattern.Functor.Covariant.Covariant w) => Pandora.Pattern.Functor.Contravariant.Contravariant (Pandora.Paradigm.Junction.Schemes.TUVW.TUVW 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co t u v w)
+ Pandora.Paradigm.Junction.Schemes.TUVW: instance (Pandora.Pattern.Functor.Contravariant.Contravariant t, Pandora.Pattern.Functor.Contravariant.Contravariant u, Pandora.Pattern.Functor.Covariant.Covariant v, Pandora.Pattern.Functor.Contravariant.Contravariant w) => Pandora.Pattern.Functor.Contravariant.Contravariant (Pandora.Paradigm.Junction.Schemes.TUVW.TUVW 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra t u v w)
+ Pandora.Paradigm.Junction.Schemes.TUVW: instance (Pandora.Pattern.Functor.Contravariant.Contravariant t, Pandora.Pattern.Functor.Contravariant.Contravariant u, Pandora.Pattern.Functor.Covariant.Covariant v, Pandora.Pattern.Functor.Covariant.Covariant w) => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Schemes.TUVW.TUVW 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v w)
+ Pandora.Paradigm.Junction.Schemes.TUVW: instance (Pandora.Pattern.Functor.Contravariant.Contravariant t, Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Contravariant.Contravariant v, Pandora.Pattern.Functor.Contravariant.Contravariant w) => Pandora.Pattern.Functor.Contravariant.Contravariant (Pandora.Paradigm.Junction.Schemes.TUVW.TUVW 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra t u v w)
+ Pandora.Paradigm.Junction.Schemes.TUVW: instance (Pandora.Pattern.Functor.Contravariant.Contravariant t, Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Contravariant.Contravariant v, Pandora.Pattern.Functor.Covariant.Covariant w) => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Schemes.TUVW.TUVW 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co t u v w)
+ Pandora.Paradigm.Junction.Schemes.TUVW: instance (Pandora.Pattern.Functor.Contravariant.Contravariant t, Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Covariant.Covariant v, Pandora.Pattern.Functor.Contravariant.Contravariant w) => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Schemes.TUVW.TUVW 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra t u v w)
+ Pandora.Paradigm.Junction.Schemes.TUVW: instance (Pandora.Pattern.Functor.Contravariant.Contravariant t, Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Covariant.Covariant v, Pandora.Pattern.Functor.Covariant.Covariant w) => Pandora.Pattern.Functor.Contravariant.Contravariant (Pandora.Paradigm.Junction.Schemes.TUVW.TUVW 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v w)
+ Pandora.Paradigm.Junction.Schemes.TUVW: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Contravariant.Contravariant u, Pandora.Pattern.Functor.Contravariant.Contravariant v, Pandora.Pattern.Functor.Contravariant.Contravariant w) => Pandora.Pattern.Functor.Contravariant.Contravariant (Pandora.Paradigm.Junction.Schemes.TUVW.TUVW 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra t u v w)
+ Pandora.Paradigm.Junction.Schemes.TUVW: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Contravariant.Contravariant u, Pandora.Pattern.Functor.Contravariant.Contravariant v, Pandora.Pattern.Functor.Covariant.Covariant w) => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Schemes.TUVW.TUVW 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co t u v w)
+ Pandora.Paradigm.Junction.Schemes.TUVW: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Contravariant.Contravariant u, Pandora.Pattern.Functor.Covariant.Covariant v, Pandora.Pattern.Functor.Contravariant.Contravariant w) => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Schemes.TUVW.TUVW 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra t u v w)
+ Pandora.Paradigm.Junction.Schemes.TUVW: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Contravariant.Contravariant u, Pandora.Pattern.Functor.Covariant.Covariant v, Pandora.Pattern.Functor.Covariant.Covariant w) => Pandora.Pattern.Functor.Contravariant.Contravariant (Pandora.Paradigm.Junction.Schemes.TUVW.TUVW 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v w)
+ Pandora.Paradigm.Junction.Schemes.TUVW: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Contravariant.Contravariant v, Pandora.Pattern.Functor.Contravariant.Contravariant w) => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Schemes.TUVW.TUVW 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Contra t u v w)
+ Pandora.Paradigm.Junction.Schemes.TUVW: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Contravariant.Contravariant v, Pandora.Pattern.Functor.Covariant.Covariant w) => Pandora.Pattern.Functor.Contravariant.Contravariant (Pandora.Paradigm.Junction.Schemes.TUVW.TUVW 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra 'Pandora.Core.Functor.Co t u v w)
+ Pandora.Paradigm.Junction.Schemes.TUVW: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Covariant.Covariant v, Pandora.Pattern.Functor.Contravariant.Contravariant w) => Pandora.Pattern.Functor.Contravariant.Contravariant (Pandora.Paradigm.Junction.Schemes.TUVW.TUVW 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Contra t u v w)
+ Pandora.Paradigm.Junction.Schemes.TUVW: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Covariant.Covariant u, Pandora.Pattern.Functor.Covariant.Covariant v, Pandora.Pattern.Functor.Covariant.Covariant w) => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Schemes.TUVW.TUVW 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v w)
+ Pandora.Paradigm.Junction.Schemes.TUVW: instance (Pandora.Pattern.Functor.Distributive.Distributive t, Pandora.Pattern.Functor.Distributive.Distributive u, Pandora.Pattern.Functor.Distributive.Distributive v, Pandora.Pattern.Functor.Distributive.Distributive w) => Pandora.Pattern.Functor.Distributive.Distributive (Pandora.Paradigm.Junction.Schemes.TUVW.TUVW 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v w)
+ Pandora.Paradigm.Junction.Schemes.TUVW: instance (Pandora.Pattern.Functor.Extractable.Extractable t, Pandora.Pattern.Functor.Extractable.Extractable u, Pandora.Pattern.Functor.Extractable.Extractable v, Pandora.Pattern.Functor.Extractable.Extractable w) => Pandora.Pattern.Functor.Extractable.Extractable (Pandora.Paradigm.Junction.Schemes.TUVW.TUVW 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v w)
+ Pandora.Paradigm.Junction.Schemes.TUVW: instance (Pandora.Pattern.Functor.Pointable.Pointable t, Pandora.Pattern.Functor.Pointable.Pointable u, Pandora.Pattern.Functor.Pointable.Pointable v, Pandora.Pattern.Functor.Pointable.Pointable w) => Pandora.Pattern.Functor.Pointable.Pointable (Pandora.Paradigm.Junction.Schemes.TUVW.TUVW 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v w)
+ Pandora.Paradigm.Junction.Schemes.TUVW: instance (Pandora.Pattern.Functor.Traversable.Traversable t, Pandora.Pattern.Functor.Traversable.Traversable u, Pandora.Pattern.Functor.Traversable.Traversable v, Pandora.Pattern.Functor.Traversable.Traversable w) => Pandora.Pattern.Functor.Traversable.Traversable (Pandora.Paradigm.Junction.Schemes.TUVW.TUVW 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u v w)
+ Pandora.Paradigm.Junction.Schemes.TUVW: instance (t Pandora.Paradigm.Junction.Schemes.TUVW.:-|: u, v Pandora.Paradigm.Junction.Schemes.TUVW.:-|: w, q Pandora.Paradigm.Junction.Schemes.TUVW.:-|: q, r Pandora.Paradigm.Junction.Schemes.TUVW.:-|: s) => Pandora.Pattern.Functor.Adjoint.Adjoint (Pandora.Paradigm.Junction.Schemes.TUVW.TUVW 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t v q r) (Pandora.Paradigm.Junction.Schemes.TUVW.TUVW 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co u w q s)
+ Pandora.Paradigm.Junction.Schemes.TUVW: instance forall k1 k2 k3 k4 k5 k6 k7 (ct :: k7) (cu :: k6) (cv :: k5) (cw :: k4) (t :: k3 -> *) (u :: k2 -> k3) (v :: k1 -> k2) (w :: * -> k1). Pandora.Paradigm.Junction.Composition.Composition (Pandora.Paradigm.Junction.Schemes.TUVW.TUVW ct cu cv cw t u v w)
+ Pandora.Paradigm.Junction.Schemes.TUVW: newtype TUVW ct cu cv cw t u v w a
+ Pandora.Paradigm.Junction.Schemes.UT: UT :: ((u :.: t) >< a) -> UT ct cu t u a
+ Pandora.Paradigm.Junction.Schemes.UT: instance (Pandora.Pattern.Functor.Applicative.Applicative t, Pandora.Pattern.Functor.Applicative.Applicative u) => Pandora.Pattern.Functor.Applicative.Applicative (Pandora.Paradigm.Junction.Schemes.UT.UT 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u)
+ Pandora.Paradigm.Junction.Schemes.UT: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Alternative.Alternative u) => Pandora.Pattern.Functor.Alternative.Alternative (Pandora.Paradigm.Junction.Schemes.UT.UT 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u)
+ Pandora.Paradigm.Junction.Schemes.UT: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Avoidable.Avoidable u) => Pandora.Pattern.Functor.Avoidable.Avoidable (Pandora.Paradigm.Junction.Schemes.UT.UT 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u)
+ Pandora.Paradigm.Junction.Schemes.UT: instance (Pandora.Pattern.Functor.Covariant.Covariant t, Pandora.Pattern.Functor.Covariant.Covariant u) => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Schemes.UT.UT 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u)
+ Pandora.Paradigm.Junction.Schemes.UT: instance (Pandora.Pattern.Functor.Distributive.Distributive t, Pandora.Pattern.Functor.Distributive.Distributive u) => Pandora.Pattern.Functor.Distributive.Distributive (Pandora.Paradigm.Junction.Schemes.UT.UT 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u)
+ Pandora.Paradigm.Junction.Schemes.UT: instance (Pandora.Pattern.Functor.Extractable.Extractable t, Pandora.Pattern.Functor.Extractable.Extractable u) => Pandora.Pattern.Functor.Extractable.Extractable (Pandora.Paradigm.Junction.Schemes.UT.UT 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u)
+ Pandora.Paradigm.Junction.Schemes.UT: instance (Pandora.Pattern.Functor.Pointable.Pointable t, Pandora.Pattern.Functor.Pointable.Pointable u) => Pandora.Pattern.Functor.Pointable.Pointable (Pandora.Paradigm.Junction.Schemes.UT.UT 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u)
+ Pandora.Paradigm.Junction.Schemes.UT: instance (Pandora.Pattern.Functor.Traversable.Traversable t, Pandora.Pattern.Functor.Traversable.Traversable u) => Pandora.Pattern.Functor.Traversable.Traversable (Pandora.Paradigm.Junction.Schemes.UT.UT 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u)
+ Pandora.Paradigm.Junction.Schemes.UT: instance Pandora.Pattern.Functor.Extractable.Extractable t => Pandora.Pattern.Functor.Lowerable.Lowerable (Pandora.Paradigm.Junction.Schemes.UT.UT 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t)
+ Pandora.Paradigm.Junction.Schemes.UT: instance Pandora.Pattern.Functor.Pointable.Pointable t => Pandora.Pattern.Functor.Liftable.Liftable (Pandora.Paradigm.Junction.Schemes.UT.UT 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t)
+ Pandora.Paradigm.Junction.Schemes.UT: instance forall k1 k2 (u :: k2 -> *) (t :: k1 -> k2) (a :: k1). Pandora.Pattern.Object.Chain.Chain ((u Pandora.Core.Functor.:.: t) Pandora.Core.Functor.>< a) => Pandora.Pattern.Object.Chain.Chain (Pandora.Paradigm.Junction.Schemes.UT.UT 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u a)
+ Pandora.Paradigm.Junction.Schemes.UT: instance forall k1 k2 (u :: k2 -> *) (t :: k1 -> k2) (a :: k1). Pandora.Pattern.Object.Monoid.Monoid ((u Pandora.Core.Functor.:.: t) Pandora.Core.Functor.>< a) => Pandora.Pattern.Object.Monoid.Monoid (Pandora.Paradigm.Junction.Schemes.UT.UT 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u a)
+ Pandora.Paradigm.Junction.Schemes.UT: instance forall k1 k2 (u :: k2 -> *) (t :: k1 -> k2) (a :: k1). Pandora.Pattern.Object.Semigroup.Semigroup ((u Pandora.Core.Functor.:.: t) Pandora.Core.Functor.>< a) => Pandora.Pattern.Object.Semigroup.Semigroup (Pandora.Paradigm.Junction.Schemes.UT.UT 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u a)
+ Pandora.Paradigm.Junction.Schemes.UT: instance forall k1 k2 (u :: k2 -> *) (t :: k1 -> k2) (a :: k1). Pandora.Pattern.Object.Setoid.Setoid ((u Pandora.Core.Functor.:.: t) Pandora.Core.Functor.>< a) => Pandora.Pattern.Object.Setoid.Setoid (Pandora.Paradigm.Junction.Schemes.UT.UT 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u a)
+ Pandora.Paradigm.Junction.Schemes.UT: instance forall k1 k2 k3 (ct :: k3) (cu :: k2) (t :: * -> k1) (u :: k1 -> *). Pandora.Paradigm.Junction.Composition.Composition (Pandora.Paradigm.Junction.Schemes.UT.UT ct cu t u)
+ Pandora.Paradigm.Junction.Schemes.UT: newtype UT ct cu t u a
+ Pandora.Paradigm.Junction.Schemes.UTU: UTU :: ((u :.: t u) >< a) -> UTU ct cu t u a
+ Pandora.Paradigm.Junction.Schemes.UTU: instance (Pandora.Pattern.Functor.Applicative.Applicative (t u), Pandora.Pattern.Functor.Applicative.Applicative u) => Pandora.Pattern.Functor.Applicative.Applicative (Pandora.Paradigm.Junction.Schemes.UTU.UTU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u)
+ Pandora.Paradigm.Junction.Schemes.UTU: instance (Pandora.Pattern.Functor.Covariant.Covariant (t u), Pandora.Pattern.Functor.Alternative.Alternative u) => Pandora.Pattern.Functor.Alternative.Alternative (Pandora.Paradigm.Junction.Schemes.UTU.UTU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u)
+ Pandora.Paradigm.Junction.Schemes.UTU: instance (Pandora.Pattern.Functor.Covariant.Covariant (t u), Pandora.Pattern.Functor.Avoidable.Avoidable u) => Pandora.Pattern.Functor.Avoidable.Avoidable (Pandora.Paradigm.Junction.Schemes.UTU.UTU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u)
+ Pandora.Paradigm.Junction.Schemes.UTU: instance (Pandora.Pattern.Functor.Covariant.Covariant (t u), Pandora.Pattern.Functor.Covariant.Covariant u) => Pandora.Pattern.Functor.Covariant.Covariant (Pandora.Paradigm.Junction.Schemes.UTU.UTU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u)
+ Pandora.Paradigm.Junction.Schemes.UTU: instance (Pandora.Pattern.Functor.Distributive.Distributive (t u), Pandora.Pattern.Functor.Distributive.Distributive u) => Pandora.Pattern.Functor.Distributive.Distributive (Pandora.Paradigm.Junction.Schemes.UTU.UTU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u)
+ Pandora.Paradigm.Junction.Schemes.UTU: instance (Pandora.Pattern.Functor.Extractable.Extractable (t u), Pandora.Pattern.Functor.Extractable.Extractable u) => Pandora.Pattern.Functor.Extractable.Extractable (Pandora.Paradigm.Junction.Schemes.UTU.UTU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u)
+ Pandora.Paradigm.Junction.Schemes.UTU: instance (Pandora.Pattern.Functor.Pointable.Pointable (t u), Pandora.Pattern.Functor.Pointable.Pointable u) => Pandora.Pattern.Functor.Pointable.Pointable (Pandora.Paradigm.Junction.Schemes.UTU.UTU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u)
+ Pandora.Paradigm.Junction.Schemes.UTU: instance (Pandora.Pattern.Functor.Traversable.Traversable (t u), Pandora.Pattern.Functor.Traversable.Traversable u) => Pandora.Pattern.Functor.Traversable.Traversable (Pandora.Paradigm.Junction.Schemes.UTU.UTU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u)
+ Pandora.Paradigm.Junction.Schemes.UTU: instance (forall (u' :: * -> *). Pandora.Pattern.Functor.Extractable.Extractable u', Pandora.Pattern.Functor.Lowerable.Lowerable t) => Pandora.Pattern.Functor.Lowerable.Lowerable (Pandora.Paradigm.Junction.Schemes.UTU.UTU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t)
+ Pandora.Paradigm.Junction.Schemes.UTU: instance (forall (u' :: * -> *). Pandora.Pattern.Functor.Pointable.Pointable u', Pandora.Pattern.Functor.Liftable.Liftable t) => Pandora.Pattern.Functor.Liftable.Liftable (Pandora.Paradigm.Junction.Schemes.UTU.UTU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t)
+ Pandora.Paradigm.Junction.Schemes.UTU: instance forall k1 k2 (t :: (k2 -> *) -> k1 -> k2) (a :: k1) (u :: k2 -> *). (forall (u' :: k2 -> *). Pandora.Pattern.Object.Chain.Chain ((u' Pandora.Core.Functor.:.: t u') Pandora.Core.Functor.>< a)) => Pandora.Pattern.Object.Chain.Chain (Pandora.Paradigm.Junction.Schemes.UTU.UTU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u a)
+ Pandora.Paradigm.Junction.Schemes.UTU: instance forall k1 k2 (t :: (k2 -> *) -> k1 -> k2) (a :: k1) (u :: k2 -> *). (forall (u' :: k2 -> *). Pandora.Pattern.Object.Monoid.Monoid ((u' Pandora.Core.Functor.:.: t u') Pandora.Core.Functor.>< a)) => Pandora.Pattern.Object.Monoid.Monoid (Pandora.Paradigm.Junction.Schemes.UTU.UTU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u a)
+ Pandora.Paradigm.Junction.Schemes.UTU: instance forall k1 k2 (t :: (k2 -> *) -> k1 -> k2) (a :: k1) (u :: k2 -> *). (forall (u' :: k2 -> *). Pandora.Pattern.Object.Semigroup.Semigroup ((u' Pandora.Core.Functor.:.: t u') Pandora.Core.Functor.>< a)) => Pandora.Pattern.Object.Semigroup.Semigroup (Pandora.Paradigm.Junction.Schemes.UTU.UTU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u a)
+ Pandora.Paradigm.Junction.Schemes.UTU: instance forall k1 k2 (t :: (k2 -> *) -> k1 -> k2) (a :: k1) (u :: k2 -> *). (forall (u' :: k2 -> *). Pandora.Pattern.Object.Setoid.Setoid ((u' Pandora.Core.Functor.:.: t u') Pandora.Core.Functor.>< a)) => Pandora.Pattern.Object.Setoid.Setoid (Pandora.Paradigm.Junction.Schemes.UTU.UTU 'Pandora.Core.Functor.Co 'Pandora.Core.Functor.Co t u a)
+ Pandora.Paradigm.Junction.Schemes.UTU: instance forall k1 k2 k3 (ct :: k3) (cu :: k2) (t :: (k1 -> *) -> * -> k1) (u :: k1 -> *). Pandora.Paradigm.Junction.Composition.Composition (Pandora.Paradigm.Junction.Schemes.UTU.UTU ct cu t u)
+ Pandora.Paradigm.Junction.Schemes.UTU: newtype UTU ct cu t u a
+ Pandora.Paradigm.Junction.Transformer: class Transformer t where {
+ Pandora.Paradigm.Junction.Transformer: equip :: (Transformer t, Pointable u) => t a -> Layout t u a
+ Pandora.Paradigm.Junction.Transformer: lay :: (Transformer t, Covariant u) => u a -> Layout t u a
+ Pandora.Paradigm.Junction.Transformer: type family Layout (t :: * -> *) (u :: * -> *) (a :: *) = r | r -> t u;
+ Pandora.Paradigm.Junction.Transformer: }
- Pandora.Paradigm.Structure.Stack: type Stack a = (Maybe :.: Twister Maybe) a
+ Pandora.Paradigm.Structure.Stack: type Stack a = Maybe :.: Twister Maybe >< a
Files
- CHANGELOG.md +13/−0
- Pandora/Core.hs +5/−0
- Pandora/Paradigm.hs +7/−0
- Pandora/Paradigm/Basis/Conclusion.hs +26/−6
- Pandora/Paradigm/Basis/Jet.hs +3/−3
- Pandora/Paradigm/Basis/Maybe.hs +26/−6
- Pandora/Paradigm/Inventory/Stateful.hs +27/−3
- Pandora/Paradigm/Inventory/Storage.hs +0/−2
- Pandora/Paradigm/Junction/Composition.hs +5/−223
- Pandora/Paradigm/Junction/Schemes.hs +7/−0
- Pandora/Paradigm/Junction/Schemes/TU.hs +60/−0
- Pandora/Paradigm/Junction/Schemes/TUV.hs +88/−0
- Pandora/Paradigm/Junction/Schemes/TUVW.hs +120/−0
- Pandora/Paradigm/Junction/Schemes/UT.hs +67/−0
- Pandora/Paradigm/Junction/Schemes/UTU.hs +67/−0
- Pandora/Paradigm/Junction/Transformer.hs +8/−113
- Pandora/Paradigm/Structure/Stack.hs +3/−6
- Pandora/Pattern.hs +4/−0
- Pandora/Pattern/Functor/Covariant.hs +1/−1
- pandora.cabal +12/−1
CHANGELOG.md view
@@ -71,3 +71,16 @@ * Define `curry` and `uncurry` for `Product` datatype * Flip arguments of `statefully` method of `Stateful` datatype * Exclude inner effects from `Environmental`, `Storage` and `Stateful` datatypes++# 0.1.8+* Rename `T` junction scheme to `UT` and move it to `Schemes` submodule and remove `up` method+* Rename `Y` junction scheme to `UTU` and move it to `Schemes` submodule and remove `:>:` type operator+* Add variance type arguments to `UT`, `UTU` and `TUT` schemes+* Rename `U` to `TU`, `UU` to `TUV`, `UUU` to `TUVW` and put them into `Schemes` module+* Define `Composition` typeclass and define its instances for `TU`, `TUV`, `TUVW`, `UT` and `UTU`+* Define `Transformer` typeclass and define its instance for `Stateful` datatype+* Replace `transform` on `lay` and add `equip` method in `Transformer` typeclass+* Define `Covariant`, `Applicative`, `Pointable`, `Bindable` and `Monad` instances for `Stateful` transformer+* Remove `:!:` type operator+* Define `Composition` and `Transformer` instances for `Maybe` and `Conclusion`+* Define `Core`, `Paradigm` and `Pattern` umbrella modules
+ Pandora/Core.hs view
@@ -0,0 +1,5 @@+module Pandora.Core (module Exports) where++import Pandora.Core.Transformation as Exports+import Pandora.Core.Morphism as Exports+import Pandora.Core.Functor as Exports
+ Pandora/Paradigm.hs view
@@ -0,0 +1,7 @@+module Pandora.Paradigm (module Exports) where++import Pandora.Paradigm.Structure as Exports+import Pandora.Paradigm.Junction as Exports+import Pandora.Paradigm.Inventory as Exports+import Pandora.Paradigm.Controlflow as Exports+import Pandora.Paradigm.Basis as Exports
Pandora/Paradigm/Basis/Conclusion.hs view
@@ -1,11 +1,13 @@ module Pandora.Paradigm.Basis.Conclusion (Conclusion (..), conclusion, fail) where import Pandora.Core.Morphism ((.), ($))-import Pandora.Paradigm.Junction.Transformer (T (T, t), type (:!:))-import Pandora.Pattern.Functor.Covariant (Covariant ((<$>)))+import Pandora.Paradigm.Junction.Composition (Composition (Outline, composition))+import Pandora.Paradigm.Junction.Transformer (Transformer (Layout, lay, equip))+import Pandora.Paradigm.Junction.Schemes.UT (UT (UT))+import Pandora.Pattern.Functor.Covariant (Covariant ((<$>), (<$$>))) import Pandora.Pattern.Functor.Pointable (Pointable (point)) import Pandora.Pattern.Functor.Alternative (Alternative ((<+>)))-import Pandora.Pattern.Functor.Applicative (Applicative ((<*>)))+import Pandora.Pattern.Functor.Applicative (Applicative ((<*>), apply)) import Pandora.Pattern.Functor.Traversable (Traversable ((->>))) import Pandora.Pattern.Functor.Bindable (Bindable ((>>=))) import Pandora.Pattern.Functor.Monad (Monad)@@ -40,10 +42,28 @@ instance Monad (Conclusion e) where -instance (Pointable t, Bindable t) => Bindable (Conclusion e :!: t) where- T x >>= f = T $ x >>= conclusion (point . Failure) (t . f)+instance Composition (Conclusion e) where+ type Outline (Conclusion e) a = Conclusion e a+ composition x = x -instance Monad t => Monad (Conclusion e :!: t) where+instance Transformer (Conclusion e) where+ type Layout (Conclusion e) u a = UT (Conclusion e) () (Conclusion e) u a+ lay x = UT $ Success <$> x+ equip x = UT . point $ x++instance Covariant u => Covariant (UT (Conclusion e) () (Conclusion e) u) where+ f <$> UT x = UT $ f <$$> x++instance Applicative u => Applicative (UT (Conclusion e) () (Conclusion e) u) where+ UT f <*> UT x = UT $ apply <$> f <*> x++instance Pointable u => Pointable (UT (Conclusion e) () (Conclusion e) u) where+ point = UT . point . point++instance (Pointable u, Bindable u) => Bindable (UT (Conclusion e) () (Conclusion e) u) where+ UT x >>= f = UT $ x >>= conclusion (point . Failure) (composition . f)++instance Monad u => Monad (UT (Conclusion e) () (Conclusion e) u) where instance (Setoid e, Setoid a) => Setoid (Conclusion e a) where Success x == Success y = x == y
Pandora/Paradigm/Basis/Jet.hs view
@@ -7,15 +7,15 @@ import Pandora.Pattern.Functor.Applicative (Applicative ((<*>))) import Pandora.Pattern.Functor.Traversable (Traversable ((->>), (->>>))) -infixr 5 :-+infixr 6 :- data Jet t a = a :- Jet t (t a) instance Covariant t => Covariant (Jet t) where- f <$> a :- as = f a :- (f <$$> as)+ f <$> a :- as = f a :- f <$$> as instance Traversable t => Traversable (Jet t) where- (a :- as) ->> f = (:-) <$> f a <*> as ->>> f+ a :- as ->> f = (:-) <$> f a <*> as ->>> f instance (forall t' . Avoidable t') => Pointable (Jet t) where point x = x :- idle
Pandora/Paradigm/Basis/Maybe.hs view
@@ -1,12 +1,14 @@ module Pandora.Paradigm.Basis.Maybe (Maybe (..), maybe) where import Pandora.Core.Morphism ((.), ($))-import Pandora.Paradigm.Junction.Transformer (T (T, t), type (:!:))-import Pandora.Pattern.Functor.Covariant (Covariant ((<$>)))+import Pandora.Paradigm.Junction.Composition (Composition (Outline, composition))+import Pandora.Paradigm.Junction.Transformer (Transformer (Layout, lay, equip))+import Pandora.Paradigm.Junction.Schemes.UT (UT (UT))+import Pandora.Pattern.Functor.Covariant (Covariant ((<$>), (<$$>))) import Pandora.Pattern.Functor.Avoidable (Avoidable (idle)) import Pandora.Pattern.Functor.Pointable (Pointable (point)) import Pandora.Pattern.Functor.Alternative (Alternative ((<+>)))-import Pandora.Pattern.Functor.Applicative (Applicative ((<*>)))+import Pandora.Pattern.Functor.Applicative (Applicative ((<*>), apply)) import Pandora.Pattern.Functor.Traversable (Traversable ((->>))) import Pandora.Pattern.Functor.Bindable (Bindable ((>>=))) import Pandora.Pattern.Functor.Monad (Monad)@@ -47,10 +49,28 @@ instance Monad Maybe where -instance (Pointable t, Bindable t) => Bindable (Maybe :!: t) where- T x >>= f = T $ x >>= maybe (point Nothing) (t . f)+instance Composition Maybe where+ type Outline Maybe a = Maybe a+ composition x = x -instance Monad t => Monad (Maybe :!: t) where+instance Transformer Maybe where+ type Layout Maybe u a = UT Maybe () Maybe u a+ lay x = UT $ Just <$> x+ equip x = UT . point $ x++instance Covariant u => Covariant (UT Maybe () Maybe u) where+ f <$> UT x = UT $ f <$$> x++instance Applicative u => Applicative (UT Maybe () Maybe u) where+ UT f <*> UT x = UT $ apply <$> f <*> x++instance Pointable u => Pointable (UT Maybe () Maybe u) where+ point = UT . point . point++instance (Pointable u, Bindable u) => Bindable (UT Maybe () Maybe u) where+ UT x >>= f = UT $ x >>= maybe (point Nothing) (composition . f)++instance Monad u => Monad (UT Maybe () Maybe u) where instance Setoid a => Setoid (Maybe a) where Just x == Just y = x == y
Pandora/Paradigm/Inventory/Stateful.hs view
@@ -3,7 +3,9 @@ import Pandora.Core.Functor (type (:.:), type (><)) import Pandora.Core.Morphism ((.), ($))-import Pandora.Paradigm.Basis.Identity (Identity)+import Pandora.Paradigm.Junction.Composition (Composition (Outline, composition))+import Pandora.Paradigm.Junction.Transformer (Transformer (Layout, lay, equip))+import Pandora.Paradigm.Junction.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 ((<$>), ($>), (<$$>)))@@ -15,12 +17,11 @@ import Pandora.Pattern.Functor.Traversable (Traversable ((->>))) import Pandora.Pattern.Functor.Bindable (Bindable ((>>=))) import Pandora.Pattern.Functor.Monad (Monad)-import Pandora.Pattern.Functor.Liftable (Liftable (lift)) import Pandora.Pattern.Object.Setoid (bool) newtype Stateful s a = Stateful ((->) s :.: (:*:) s >< a) -statefully :: s -> Stateful s a -> (s :*: a)+statefully :: s -> Stateful s a -> s :*: a statefully initial (Stateful state) = state initial instance Covariant (Stateful s) where@@ -55,3 +56,26 @@ find :: (Pointable u, Avoidable u, Alternative u, Traversable t) => Predicate a -> t a -> u a find p struct = fold idle (\x s -> (<+>) s . bool idle (point x) . predicate p $ x) struct++instance Composition (Stateful s) where+ type Outline (Stateful s) a = (->) s :.: (:*:) s >< a+ composition (Stateful x) = x++instance Transformer (Stateful s) where+ type Layout (Stateful s) u a = TUV Stateful () Stateful ((->) s) u ((:*:) s) a+ lay x = TUV $ \s -> (s :*:) <$> x+ equip x = TUV $ point <$> composition x++instance Covariant u => Covariant (TUV Stateful () Stateful ((->) s) u ((:*:) s)) where+ f <$> TUV x = TUV $ \old -> f <$$> x old++instance Bindable u => Applicative (TUV Stateful () Stateful ((->) s) u ((:*:) s)) where+ TUV f <*> TUV x = TUV $ \old -> f old >>= \(new :*: g) -> g <$$> x new++instance Pointable u => Pointable (TUV Stateful () Stateful ((->) s) u ((:*:) s)) where+ point x = TUV $ \s -> point $ s :*: x++instance Bindable u => Bindable (TUV Stateful () Stateful ((->) s) u ((:*:) s)) where+ TUV x >>= f = TUV $ \old -> x old >>= \(new :*: y) -> ($ new) . composition . f $ y++instance Monad u => Monad (TUV Stateful () Stateful ((->) s) u ((:*:) s)) where
Pandora/Paradigm/Inventory/Storage.hs view
@@ -2,12 +2,10 @@ import Pandora.Core.Functor (type (:.:), type (><)) import Pandora.Core.Morphism ((.), ($), (?))-import Pandora.Paradigm.Basis.Identity (Identity) import Pandora.Paradigm.Basis.Product (Product ((:*:)), type (:*:)) import Pandora.Pattern.Functor.Covariant (Covariant ((<$>))) import Pandora.Pattern.Functor.Extractable (Extractable (extract)) import Pandora.Pattern.Functor.Extendable (Extendable ((=>>)))-import Pandora.Pattern.Functor.Applicative (Applicative ((<*>))) import Pandora.Pattern.Functor.Comonad (Comonad) newtype Storage p a = Storage { stored :: (:*:) p :.: (->) p >< a }
Pandora/Paradigm/Junction/Composition.hs view
@@ -1,224 +1,6 @@-module Pandora.Paradigm.Junction.Composition (U (..), UU (..), UUU (..)) where--import Pandora.Core.Functor (Variant (Co, Contra), type (:.:))-import Pandora.Core.Morphism ((.), ($))-import Pandora.Pattern.Functor.Covariant (Covariant ((<$>), (<$$>), (<$$$>), (<$$$$>), comap))-import Pandora.Pattern.Functor.Contravariant (Contravariant ((>$<), (>$$<), (>$$$<), (>$$$$<), contramap))-import Pandora.Pattern.Functor.Extractable (Extractable (extract))-import Pandora.Pattern.Functor.Avoidable (Avoidable (idle))-import Pandora.Pattern.Functor.Pointable (Pointable (point))-import Pandora.Pattern.Functor.Alternative (Alternative ((<+>)))-import Pandora.Pattern.Functor.Applicative (Applicative ((<*>), apply))-import Pandora.Pattern.Functor.Traversable (Traversable ((->>), (->>>), (->>>>), (->>>>>)))-import Pandora.Pattern.Functor.Distributive (Distributive ((>>-), distribute))-import Pandora.Pattern.Functor.Adjoint (Adjoint (phi, psi))--type (:-|:) t u = (Extractable t, Pointable t, Extractable u, Pointable u, Adjoint t u)---newtype U ct cu t u a = U { u :: (t :.: u) a }--instance (Covariant t, Covariant u) => Covariant (U 'Co 'Co t u) where- f <$> U x = U $ f <$$> x--instance (Covariant t, Contravariant u) => Contravariant (U 'Co 'Contra t u) where- f >$< U x = U $ contramap f <$> x--instance (Contravariant t, Covariant u) => Contravariant (U 'Contra 'Co t u) where- f >$< U x = U $ contramap (comap f) x--instance (Contravariant t, Contravariant u) => Covariant (U 'Contra 'Contra t u) where- f <$> U x = U $ f >$$< x--instance (Pointable t, Pointable u) => Pointable (U 'Co 'Co t u) where- point = U . point . point--instance (Extractable t, Extractable u) => Extractable (U 'Co 'Co t u) where- extract = extract . extract . u--instance (Avoidable t, Covariant u) => Avoidable (U 'Co 'Co t u) where- idle = U idle--instance (Applicative t, Applicative u) => Applicative (U 'Co 'Co t u) where- U f <*> U x = U $ apply <$> f <*> x--instance (Alternative t, Covariant u) => Alternative (U 'Co 'Co t u) where- U x <+> U y = U $ x <+> y--instance (Traversable t, Traversable u) => Traversable (U 'Co 'Co t u) where- U x ->> f = U <$> x ->>> f--instance (Distributive t, Distributive u) => Distributive (U 'Co 'Co t u) where- x >>- f = U . comap distribute . distribute $ u . f <$> x--instance (t :-|: u, v :-|: w) => Adjoint (U 'Co 'Co t v) (U 'Co 'Co u w) where- phi f = point . f . point- psi f = extract . extract . comap f---newtype UU ct cu cv t u v a = UU { uu :: (t :.: u :.: v) a }--instance (Covariant t, Covariant u, Covariant v)- => Covariant (UU 'Co 'Co 'Co t u v) where- f <$> UU x = UU $ f <$$$> x--instance (Covariant t, Covariant u, Contravariant v)- => Contravariant (UU 'Co 'Co 'Contra t u v) where- f >$< UU x = UU $ (f >$<) <$$> x--instance (Covariant t, Contravariant u, Covariant v)- => Contravariant (UU 'Co 'Contra 'Co t u v) where- f >$< UU x = UU $ contramap (comap f) <$> x--instance (Contravariant t, Covariant u, Covariant v)- => Contravariant (UU 'Contra 'Co 'Co t u v) where- f >$< UU x = UU $ (f <$$>) >$< x--instance (Contravariant t, Contravariant u, Covariant v)- => Covariant (UU 'Contra 'Contra 'Co t u v) where- f <$> UU x = UU $ contramap (comap f) >$< x--instance (Covariant t, Contravariant u, Contravariant v)- => Covariant (UU 'Co 'Contra 'Contra t u v) where- f <$> UU x = UU $ (f >$$<) <$> x--instance (Contravariant t, Covariant u, Contravariant v)- => Covariant (UU 'Contra 'Co 'Contra t u v) where- f <$> UU x = UU $ comap (contramap f) >$< x--instance (Contravariant t, Contravariant u, Contravariant v)- => Contravariant (UU 'Contra 'Contra 'Contra t u v) where- f >$< UU x = UU $ f >$$$< x--instance (Pointable t, Pointable u, Pointable v)- => Pointable (UU 'Co 'Co 'Co t u v) where- point = UU . point . point . point--instance (Extractable t, Extractable u, Extractable v)- => Extractable (UU 'Co 'Co 'Co t u v) where- extract = extract . extract . extract . uu--instance (Avoidable t, Covariant u, Covariant v)- => Avoidable (UU 'Co 'Co 'Co t u v) where- idle = UU idle--instance (Applicative t, Applicative u, Applicative v)- => Applicative (UU 'Co 'Co 'Co t u v) where- UU f <*> UU x = UU $ ((apply <$>) . (apply <$$>) $ f) <*> x--instance (Alternative t, Covariant u, Covariant v)- => Alternative (UU 'Co 'Co 'Co t u v) where- UU x <+> UU y = UU $ x <+> y--instance (Traversable t, Traversable u, Traversable v)- => Traversable (UU 'Co 'Co 'Co t u v) where- UU x ->> f = UU <$> x ->>>> f--instance (Distributive t, Distributive u, Distributive v)- => Distributive (UU 'Co 'Co 'Co t u v) where- x >>- f = UU . (distribute <$$>) . (distribute <$>) . distribute $ uu . f <$> x--instance (t :-|: w, v :-|: x, u :-|: y)- => Adjoint (UU 'Co 'Co 'Co t v u) (UU 'Co 'Co 'Co w x y) where- phi f = point . f . point- psi f = extract . extract . comap f---newtype UUU ct cu cv cw t u v w a = UUU { uuu :: (t :.: u :.: v :.: w) a }--instance (Covariant t, Covariant u, Covariant v, Covariant w)- => Covariant (UUU 'Co 'Co 'Co 'Co t u v w) where- f <$> UUU x = UUU $ f <$$$$> x--instance (Covariant t, Covariant u, Covariant v, Contravariant w)- => Contravariant (UUU 'Co 'Co 'Co 'Contra t u v w) where- f >$< UUU x = UUU $ (f >$<) <$$$> x--instance (Covariant t, Covariant u, Contravariant v, Covariant w)- => Contravariant (UUU 'Co 'Co 'Contra 'Co t u v w) where- f >$< UUU x = UUU $ (contramap (comap f)) <$$> x--instance (Covariant t, Contravariant u, Covariant v, Covariant w)- => Contravariant (UUU 'Co 'Contra 'Co 'Co t u v w) where- f >$< UUU x = UUU $ (contramap (comap (comap f))) <$> x--instance (Contravariant t, Covariant u, Covariant v, Covariant w)- => Contravariant (UUU 'Contra 'Co 'Co 'Co t u v w) where- f >$< UUU x = UUU $ (f <$$$>) >$< x--instance (Contravariant t, Contravariant u, Covariant v, Covariant w)- => Covariant (UUU 'Contra 'Contra 'Co 'Co t u v w) where- f <$> UUU x = UUU $ (contramap . contramap . comap . comap $ f) x--instance (Covariant t, Contravariant u, Contravariant v, Covariant w)- => Covariant (UUU 'Co 'Contra 'Contra 'Co t u v w) where- f <$> UUU x = UUU $ (comap . contramap . contramap . comap $ f) x--instance (Covariant t, Covariant u, Contravariant v, Contravariant w)- => Covariant (UUU 'Co 'Co 'Contra 'Contra t u v w) where- f <$> UUU x = UUU $ (f >$$<) <$$> x--instance (Covariant t, Contravariant u, Covariant v, Contravariant w)- => Covariant (UUU 'Co 'Contra 'Co 'Contra t u v w) where- f <$> UUU x = UUU $ (comap . contramap . comap . contramap $ f) x--instance (Contravariant t, Covariant u, Contravariant v, Covariant w)- => Covariant (UUU 'Contra 'Co 'Contra 'Co t u v w) where- f <$> UUU x = UUU $ (contramap . comap . contramap . comap $ f) x--instance (Contravariant t, Covariant u, Covariant v, Contravariant w)- => Covariant (UUU 'Contra 'Co 'Co 'Contra t u v w) where- f <$> UUU x = UUU $ (contramap . comap . comap . contramap $ f) x--instance (Contravariant t, Contravariant u, Contravariant v, Covariant w)- => Contravariant (UUU 'Contra 'Contra 'Contra 'Co t u v w) where- f >$< UUU x = UUU $ (f <$>) >$$$< x--instance (Covariant t, Contravariant u, Contravariant v, Contravariant w)- => Contravariant (UUU 'Co 'Contra 'Contra 'Contra t u v w) where- f >$< UUU x = UUU $ (f >$$$<) <$> x--instance (Contravariant t, Covariant u, Contravariant v, Contravariant w)- => Contravariant (UUU 'Contra 'Co 'Contra 'Contra t u v w) where- f >$< UUU x = UUU $ (contramap . comap . contramap . contramap) f x--instance (Contravariant t, Contravariant u, Covariant v, Contravariant w)- => Contravariant (UUU 'Contra 'Contra 'Co 'Contra t u v w) where- f >$< UUU x = UUU $ (contramap . contramap . comap . contramap) f x--instance (Contravariant t, Contravariant u, Contravariant v, Contravariant w)- => Covariant (UUU 'Contra 'Contra 'Contra 'Contra t u v w) where- f <$> UUU x = UUU $ f >$$$$< x--instance (Pointable t, Pointable u, Pointable v, Pointable w)- => Pointable (UUU 'Co 'Co 'Co 'Co t u v w) where- point = UUU . point . point . point . point--instance (Extractable t, Extractable u, Extractable v, Extractable w)- => Extractable (UUU 'Co 'Co 'Co 'Co t u v w) where- extract = extract . extract . extract . extract . uuu--instance (Avoidable t, Covariant u, Covariant v, Covariant w)- => Avoidable (UUU 'Co 'Co 'Co 'Co t u v w) where- idle = UUU idle--instance (Applicative t, Applicative u, Applicative v, Applicative w)- => Applicative (UUU 'Co 'Co 'Co 'Co t u v w) where- UUU f <*> UUU x = UUU $ ((apply <$>) . (apply <$$>) . (apply <$$$>) $ f) <*> x--instance (Alternative t, Covariant u, Covariant v, Covariant w)- => Alternative (UUU 'Co 'Co 'Co 'Co t u v w) where- UUU x <+> UUU y = UUU $ x <+> y--instance (Traversable t, Traversable u, Traversable v, Traversable w)- => Traversable (UUU 'Co 'Co 'Co 'Co t u v w) where- UUU x ->> f = UUU <$> x ->>>>> f--instance (Distributive t, Distributive u, Distributive v, Distributive w)- => Distributive (UUU 'Co 'Co 'Co 'Co t u v w) where- x >>- f = UUU . (distribute <$$$>) . (distribute <$$>) . (distribute <$>) . distribute $ uuu . f <$> x+module Pandora.Paradigm.Junction.Composition (Composition (..)) where -instance (t :-|: u, v :-|: w, q :-|: q, r :-|: s)- => Adjoint (UUU 'Co 'Co 'Co 'Co t v q r) (UUU 'Co 'Co 'Co 'Co u w q s) where- phi f = point . f . point- psi f = extract . extract . comap f+class Composition t where+ {-# MINIMAL composition #-}+ type Outline t a :: *+ composition :: t a -> Outline t a
+ Pandora/Paradigm/Junction/Schemes.hs view
@@ -0,0 +1,7 @@+module Pandora.Paradigm.Junction.Schemes (module Exports) where++import Pandora.Paradigm.Junction.Schemes.UTU as Exports+import Pandora.Paradigm.Junction.Schemes.UT as Exports+import Pandora.Paradigm.Junction.Schemes.TUVW as Exports+import Pandora.Paradigm.Junction.Schemes.TUV as Exports+import Pandora.Paradigm.Junction.Schemes.TU as Exports
+ Pandora/Paradigm/Junction/Schemes/TU.hs view
@@ -0,0 +1,60 @@+module Pandora.Paradigm.Junction.Schemes.TU (TU (..)) where++import Pandora.Core.Functor (Variant (Co, Contra), type (:.:), type (><))+import Pandora.Core.Morphism ((.), ($))+import Pandora.Paradigm.Junction.Composition (Composition (Outline, composition))+import Pandora.Pattern.Functor.Covariant (Covariant ((<$>), (<$$>), comap))+import Pandora.Pattern.Functor.Contravariant (Contravariant ((>$<), (>$$<)))+import Pandora.Pattern.Functor.Extractable (Extractable (extract))+import Pandora.Pattern.Functor.Avoidable (Avoidable (idle))+import Pandora.Pattern.Functor.Pointable (Pointable (point))+import Pandora.Pattern.Functor.Alternative (Alternative ((<+>)))+import Pandora.Pattern.Functor.Applicative (Applicative ((<*>), apply))+import Pandora.Pattern.Functor.Traversable (Traversable ((->>), (->>>)))+import Pandora.Pattern.Functor.Distributive (Distributive ((>>-), distribute))+import Pandora.Pattern.Functor.Adjoint (Adjoint (phi, psi))++newtype TU ct cu t u a = TU (t :.: u >< a)++instance Composition (TU ct cu t u) where+ type Outline (TU ct cu t u) a = t :.: u >< a+ composition (TU x) = x++instance (Covariant t, Covariant u) => Covariant (TU 'Co 'Co t u) where+ f <$> TU x = TU $ f <$$> x++instance (Covariant t, Contravariant u) => Contravariant (TU 'Co 'Contra t u) where+ f >$< TU x = TU $ (f >$<) <$> x++instance (Contravariant t, Covariant u) => Contravariant (TU 'Contra 'Co t u) where+ f >$< TU x = TU $ (f <$>) >$< x++instance (Contravariant t, Contravariant u) => Covariant (TU 'Contra 'Contra t u) where+ f <$> TU x = TU $ f >$$< x++instance (Pointable t, Pointable u) => Pointable (TU 'Co 'Co t u) where+ point = TU . point . point++instance (Extractable t, Extractable u) => Extractable (TU 'Co 'Co t u) where+ extract = extract . extract . composition++instance (Avoidable t, Covariant u) => Avoidable (TU 'Co 'Co t u) where+ idle = TU idle++instance (Applicative t, Applicative u) => Applicative (TU 'Co 'Co t u) where+ TU f <*> TU x = TU $ apply <$> f <*> x++instance (Alternative t, Covariant u) => Alternative (TU 'Co 'Co t u) where+ TU x <+> TU y = TU $ x <+> y++instance (Traversable t, Traversable u) => Traversable (TU 'Co 'Co t u) where+ TU x ->> f = TU <$> x ->>> f++instance (Distributive t, Distributive u) => Distributive (TU 'Co 'Co t u) where+ x >>- f = TU . comap distribute . distribute $ composition . f <$> x++type (:-|:) t u = (Extractable t, Pointable t, Extractable u, Pointable u, Adjoint t u)++instance (t :-|: u, v :-|: w) => Adjoint (TU 'Co 'Co t v) (TU 'Co 'Co u w) where+ phi f = point . f . point+ psi f = extract . extract . comap f
+ Pandora/Paradigm/Junction/Schemes/TUV.hs view
@@ -0,0 +1,88 @@+module Pandora.Paradigm.Junction.Schemes.TUV (TUV (..)) where++import Pandora.Core.Functor (Variant (Co, Contra), type (:.:), type (><))+import Pandora.Core.Morphism ((.), ($))+import Pandora.Paradigm.Junction.Composition (Composition (Outline, composition))+import Pandora.Pattern.Functor.Covariant (Covariant ((<$>), (<$$>), (<$$$>), comap))+import Pandora.Pattern.Functor.Contravariant (Contravariant ((>$<), (>$$<), (>$$$<)), contramap)+import Pandora.Pattern.Functor.Extractable (Extractable (extract))+import Pandora.Pattern.Functor.Avoidable (Avoidable (idle))+import Pandora.Pattern.Functor.Pointable (Pointable (point))+import Pandora.Pattern.Functor.Alternative (Alternative ((<+>)))+import Pandora.Pattern.Functor.Applicative (Applicative ((<*>), apply))+import Pandora.Pattern.Functor.Traversable (Traversable ((->>), (->>>>)))+import Pandora.Pattern.Functor.Distributive (Distributive ((>>-), distribute))+import Pandora.Pattern.Functor.Adjoint (Adjoint (phi, psi))++newtype TUV ct cu cv t u v a = TUV (t :.: u :.: v >< a)++instance Composition (TUV ct cu cv t u v) where+ type Outline (TUV ct cu cv t u v) a = t :.: u :.: v >< a+ composition (TUV x) = x++instance (Covariant t, Covariant u, Covariant v)+ => Covariant (TUV 'Co 'Co 'Co t u v) where+ f <$> TUV x = TUV $ f <$$$> x++instance (Covariant t, Covariant u, Contravariant v)+ => Contravariant (TUV 'Co 'Co 'Contra t u v) where+ f >$< TUV x = TUV $ (f >$<) <$$> x++instance (Covariant t, Contravariant u, Covariant v)+ => Contravariant (TUV 'Co 'Contra 'Co t u v) where+ f >$< TUV x = TUV $ contramap (comap f) <$> x++instance (Contravariant t, Covariant u, Covariant v)+ => Contravariant (TUV 'Contra 'Co 'Co t u v) where+ f >$< TUV x = TUV $ (f <$$>) >$< x++instance (Contravariant t, Contravariant u, Covariant v)+ => Covariant (TUV 'Contra 'Contra 'Co t u v) where+ f <$> TUV x = TUV $ contramap (comap f) >$< x++instance (Covariant t, Contravariant u, Contravariant v)+ => Covariant (TUV 'Co 'Contra 'Contra t u v) where+ f <$> TUV x = TUV $ (f >$$<) <$> x++instance (Contravariant t, Covariant u, Contravariant v)+ => Covariant (TUV 'Contra 'Co 'Contra t u v) where+ f <$> TUV x = TUV $ comap (contramap f) >$< x++instance (Contravariant t, Contravariant u, Contravariant v)+ => Contravariant (TUV 'Contra 'Contra 'Contra t u v) where+ f >$< TUV x = TUV $ f >$$$< x++instance (Pointable t, Pointable u, Pointable v)+ => Pointable (TUV 'Co 'Co 'Co t u v) where+ point = TUV . point . point . point++instance (Extractable t, Extractable u, Extractable v)+ => Extractable (TUV 'Co 'Co 'Co t u v) where+ extract = extract . extract . extract . composition++instance (Avoidable t, Covariant u, Covariant v)+ => Avoidable (TUV 'Co 'Co 'Co t u v) where+ idle = TUV idle++instance (Applicative t, Applicative u, Applicative v)+ => Applicative (TUV 'Co 'Co 'Co t u v) where+ TUV f <*> TUV x = TUV $ ((apply <$>) . (apply <$$>) $ f) <*> x++instance (Alternative t, Covariant u, Covariant v)+ => Alternative (TUV 'Co 'Co 'Co t u v) where+ TUV x <+> TUV y = TUV $ x <+> y++instance (Traversable t, Traversable u, Traversable v)+ => Traversable (TUV 'Co 'Co 'Co t u v) where+ TUV x ->> f = TUV <$> x ->>>> f++instance (Distributive t, Distributive u, Distributive v)+ => Distributive (TUV 'Co 'Co 'Co t u v) where+ x >>- f = TUV . (distribute <$$>) . (distribute <$>) . distribute $ composition . f <$> x++type (:-|:) t u = (Extractable t, Pointable t, Extractable u, Pointable u, Adjoint t u)++instance (t :-|: w, v :-|: x, u :-|: y)+ => Adjoint (TUV 'Co 'Co 'Co t v u) (TUV 'Co 'Co 'Co w x y) where+ phi f = point . f . point+ psi f = extract . extract . comap f
+ Pandora/Paradigm/Junction/Schemes/TUVW.hs view
@@ -0,0 +1,120 @@+module Pandora.Paradigm.Junction.Schemes.TUVW (TUVW (..)) where++import Pandora.Core.Functor (Variant (Co, Contra), type (:.:), type (><))+import Pandora.Core.Morphism ((.), ($))+import Pandora.Paradigm.Junction.Composition (Composition (Outline, composition))+import Pandora.Pattern.Functor.Covariant (Covariant ((<$>), (<$$>), (<$$$>), (<$$$$>), comap))+import Pandora.Pattern.Functor.Contravariant (Contravariant ((>$<), (>$$<), (>$$$<), (>$$$$<), contramap))+import Pandora.Pattern.Functor.Extractable (Extractable (extract))+import Pandora.Pattern.Functor.Avoidable (Avoidable (idle))+import Pandora.Pattern.Functor.Pointable (Pointable (point))+import Pandora.Pattern.Functor.Alternative (Alternative ((<+>)))+import Pandora.Pattern.Functor.Applicative (Applicative ((<*>), apply))+import Pandora.Pattern.Functor.Traversable (Traversable ((->>), (->>>>>)))+import Pandora.Pattern.Functor.Distributive (Distributive ((>>-), distribute))+import Pandora.Pattern.Functor.Adjoint (Adjoint (phi, psi))++newtype TUVW ct cu cv cw t u v w a = TUVW (t :.: u :.: v :.: w >< a)++instance Composition (TUVW ct cu cv cw t u v w) where+ type Outline (TUVW ct cu cv cw t u v w) a = t :.: u :.: v :.: w >< a+ composition (TUVW x) = x++instance (Covariant t, Covariant u, Covariant v, Covariant w)+ => Covariant (TUVW 'Co 'Co 'Co 'Co t u v w) where+ f <$> TUVW x = TUVW $ f <$$$$> x++instance (Covariant t, Covariant u, Covariant v, Contravariant w)+ => Contravariant (TUVW 'Co 'Co 'Co 'Contra t u v w) where+ f >$< TUVW x = TUVW $ (f >$<) <$$$> x++instance (Covariant t, Covariant u, Contravariant v, Covariant w)+ => Contravariant (TUVW 'Co 'Co 'Contra 'Co t u v w) where+ f >$< TUVW x = TUVW $ (contramap (comap f)) <$$> x++instance (Covariant t, Contravariant u, Covariant v, Covariant w)+ => Contravariant (TUVW 'Co 'Contra 'Co 'Co t u v w) where+ f >$< TUVW x = TUVW $ (contramap (comap (comap f))) <$> x++instance (Contravariant t, Covariant u, Covariant v, Covariant w)+ => Contravariant (TUVW 'Contra 'Co 'Co 'Co t u v w) where+ f >$< TUVW x = TUVW $ (f <$$$>) >$< x++instance (Contravariant t, Contravariant u, Covariant v, Covariant w)+ => Covariant (TUVW 'Contra 'Contra 'Co 'Co t u v w) where+ f <$> TUVW x = TUVW $ (contramap . contramap . comap . comap $ f) x++instance (Covariant t, Contravariant u, Contravariant v, Covariant w)+ => Covariant (TUVW 'Co 'Contra 'Contra 'Co t u v w) where+ f <$> TUVW x = TUVW $ (comap . contramap . contramap . comap $ f) x++instance (Covariant t, Covariant u, Contravariant v, Contravariant w)+ => Covariant (TUVW 'Co 'Co 'Contra 'Contra t u v w) where+ f <$> TUVW x = TUVW $ (f >$$<) <$$> x++instance (Covariant t, Contravariant u, Covariant v, Contravariant w)+ => Covariant (TUVW 'Co 'Contra 'Co 'Contra t u v w) where+ f <$> TUVW x = TUVW $ (comap . contramap . comap . contramap $ f) x++instance (Contravariant t, Covariant u, Contravariant v, Covariant w)+ => Covariant (TUVW 'Contra 'Co 'Contra 'Co t u v w) where+ f <$> TUVW x = TUVW $ (contramap . comap . contramap . comap $ f) x++instance (Contravariant t, Covariant u, Covariant v, Contravariant w)+ => Covariant (TUVW 'Contra 'Co 'Co 'Contra t u v w) where+ f <$> TUVW x = TUVW $ (contramap . comap . comap . contramap $ f) x++instance (Contravariant t, Contravariant u, Contravariant v, Covariant w)+ => Contravariant (TUVW 'Contra 'Contra 'Contra 'Co t u v w) where+ f >$< TUVW x = TUVW $ (f <$>) >$$$< x++instance (Covariant t, Contravariant u, Contravariant v, Contravariant w)+ => Contravariant (TUVW 'Co 'Contra 'Contra 'Contra t u v w) where+ f >$< TUVW x = TUVW $ (f >$$$<) <$> x++instance (Contravariant t, Covariant u, Contravariant v, Contravariant w)+ => Contravariant (TUVW 'Contra 'Co 'Contra 'Contra t u v w) where+ f >$< TUVW x = TUVW $ (contramap . comap . contramap . contramap) f x++instance (Contravariant t, Contravariant u, Covariant v, Contravariant w)+ => Contravariant (TUVW 'Contra 'Contra 'Co 'Contra t u v w) where+ f >$< TUVW x = TUVW $ (contramap . contramap . comap . contramap) f x++instance (Contravariant t, Contravariant u, Contravariant v, Contravariant w)+ => Covariant (TUVW 'Contra 'Contra 'Contra 'Contra t u v w) where+ f <$> TUVW x = TUVW $ f >$$$$< x++instance (Pointable t, Pointable u, Pointable v, Pointable w)+ => Pointable (TUVW 'Co 'Co 'Co 'Co t u v w) where+ point = TUVW . point . point . point . point++instance (Extractable t, Extractable u, Extractable v, Extractable w)+ => Extractable (TUVW 'Co 'Co 'Co 'Co t u v w) where+ extract = extract . extract . extract . extract . composition++instance (Avoidable t, Covariant u, Covariant v, Covariant w)+ => Avoidable (TUVW 'Co 'Co 'Co 'Co t u v w) where+ idle = TUVW idle++instance (Applicative t, Applicative u, Applicative v, Applicative w)+ => Applicative (TUVW 'Co 'Co 'Co 'Co t u v w) where+ TUVW f <*> TUVW x = TUVW $ ((apply <$>) . (apply <$$>) . (apply <$$$>) $ f) <*> x++instance (Alternative t, Covariant u, Covariant v, Covariant w)+ => Alternative (TUVW 'Co 'Co 'Co 'Co t u v w) where+ TUVW x <+> TUVW y = TUVW $ x <+> y++instance (Traversable t, Traversable u, Traversable v, Traversable w)+ => Traversable (TUVW 'Co 'Co 'Co 'Co t u v w) where+ TUVW x ->> f = TUVW <$> x ->>>>> f++instance (Distributive t, Distributive u, Distributive v, Distributive w)+ => Distributive (TUVW 'Co 'Co 'Co 'Co t u v w) where+ x >>- f = TUVW . (distribute <$$$>) . (distribute <$$>) . (distribute <$>) . distribute $ composition . f <$> x++type (:-|:) t u = (Extractable t, Pointable t, Extractable u, Pointable u, Adjoint t u)++instance (t :-|: u, v :-|: w, q :-|: q, r :-|: s)+ => Adjoint (TUVW 'Co 'Co 'Co 'Co t v q r) (TUVW 'Co 'Co 'Co 'Co u w q s) where+ phi f = point . f . point+ psi f = extract . extract . comap f
+ Pandora/Paradigm/Junction/Schemes/UT.hs view
@@ -0,0 +1,67 @@+module Pandora.Paradigm.Junction.Schemes.UT (UT (..)) where++import Pandora.Core.Functor (Variant (Co), type (:.:), type (><))+import Pandora.Core.Morphism ((.), ($))+import Pandora.Paradigm.Junction.Composition (Composition (Outline, composition))+import Pandora.Pattern.Functor.Covariant (Covariant ((<$>), (<$$>), comap))+import Pandora.Pattern.Functor.Pointable (Pointable (point))+import Pandora.Pattern.Functor.Extractable (Extractable (extract))+import Pandora.Pattern.Functor.Avoidable (Avoidable (idle))+import Pandora.Pattern.Functor.Alternative (Alternative ((<+>)))+import Pandora.Pattern.Functor.Applicative (Applicative ((<*>), apply))+import Pandora.Pattern.Functor.Traversable (Traversable ((->>), (->>>)))+import Pandora.Pattern.Functor.Distributive (Distributive ((>>-), distribute))+import Pandora.Pattern.Functor.Liftable (Liftable (lift))+import Pandora.Pattern.Functor.Lowerable (Lowerable (lower))+import Pandora.Pattern.Object.Setoid (Setoid ((==)))+import Pandora.Pattern.Object.Chain (Chain ((<=>)))+import Pandora.Pattern.Object.Semigroup (Semigroup ((+)))+import Pandora.Pattern.Object.Monoid (Monoid (zero))++newtype UT ct cu t u a = UT (u :.: t >< a)++instance Composition (UT ct cu t u) where+ type Outline (UT ct cu t u) a = u :.: t >< a+ composition (UT x) = x++instance (Covariant t, Covariant u) => Covariant (UT 'Co 'Co t u) where+ f <$> UT x = UT $ f <$$> x++instance (Pointable t, Pointable u) => Pointable (UT 'Co 'Co t u) where+ point = UT . point . point++instance (Extractable t, Extractable u) => Extractable (UT 'Co 'Co t u) where+ extract = extract . extract . composition++instance (Covariant t, Avoidable u) => Avoidable (UT 'Co 'Co t u) where+ idle = UT idle++instance (Covariant t, Alternative u) => Alternative (UT 'Co 'Co t u) where+ UT x <+> UT y = UT $ x <+> y++instance (Applicative t, Applicative u) => Applicative (UT 'Co 'Co t u) where+ UT f <*> UT x = UT $ apply <$> f <*> x++instance Pointable t => Liftable (UT 'Co 'Co t) where+ lift x = UT $ point <$> x++instance Extractable t => Lowerable (UT 'Co 'Co t) where+ lower (UT x) = extract <$> x++instance (Traversable t, Traversable u) => Traversable (UT 'Co 'Co t u) where+ UT x ->> f = UT <$> x ->>> f++instance (Distributive t, Distributive u) => Distributive (UT 'Co 'Co t u) where+ x >>- f = UT . comap distribute . distribute $ composition . f <$> x++instance Setoid (u :.: t >< a) => Setoid (UT 'Co 'Co t u a) where+ UT x == UT y = x == y++instance Chain (u :.: t >< a) => Chain (UT 'Co 'Co t u a) where+ UT x <=> UT y = x <=> y++instance Semigroup (u :.: t >< a) => Semigroup (UT 'Co 'Co t u a) where+ UT x + UT y = UT $ x + y++instance Monoid (u :.: t >< a) => Monoid (UT 'Co 'Co t u a) where+ zero = UT zero
+ Pandora/Paradigm/Junction/Schemes/UTU.hs view
@@ -0,0 +1,67 @@+module Pandora.Paradigm.Junction.Schemes.UTU (UTU (..)) where++import Pandora.Core.Functor (Variant (Co), type (:.:), type (><))+import Pandora.Core.Morphism ((.), ($))+import Pandora.Paradigm.Junction.Composition (Composition (Outline, composition))+import Pandora.Pattern.Functor.Covariant (Covariant ((<$>), (<$$>), comap))+import Pandora.Pattern.Functor.Pointable (Pointable (point))+import Pandora.Pattern.Functor.Extractable (Extractable (extract))+import Pandora.Pattern.Functor.Avoidable (Avoidable (idle))+import Pandora.Pattern.Functor.Alternative (Alternative ((<+>)))+import Pandora.Pattern.Functor.Applicative (Applicative ((<*>), apply))+import Pandora.Pattern.Functor.Traversable (Traversable ((->>), (->>>)))+import Pandora.Pattern.Functor.Distributive (Distributive ((>>-), distribute))+import Pandora.Pattern.Functor.Liftable (Liftable (lift))+import Pandora.Pattern.Functor.Lowerable (Lowerable (lower))+import Pandora.Pattern.Object.Setoid (Setoid ((==)))+import Pandora.Pattern.Object.Chain (Chain ((<=>)))+import Pandora.Pattern.Object.Semigroup (Semigroup ((+)))+import Pandora.Pattern.Object.Monoid (Monoid (zero))++newtype UTU ct cu t u a = UTU (u :.: t u >< a)++instance Composition (UTU ct cu t u) where+ type Outline (UTU ct cu t u) a = u :.: t u >< a+ composition (UTU x) = x++instance (Covariant (t u), Covariant u) => Covariant (UTU 'Co 'Co t u) where+ f <$> UTU x = UTU $ f <$$> x++instance (Pointable (t u), Pointable u) => Pointable (UTU 'Co 'Co t u) where+ point = UTU . point . point++instance (Extractable (t u), Extractable u) => Extractable (UTU 'Co 'Co t u) where+ extract = extract . extract . composition++instance (Covariant (t u), Avoidable u) => Avoidable (UTU 'Co 'Co t u) where+ idle = UTU idle++instance (Covariant (t u), Alternative u) => Alternative (UTU 'Co 'Co t u) where+ UTU x <+> UTU y = UTU $ x <+> y++instance (Applicative (t u), Applicative u) => Applicative (UTU 'Co 'Co t u) where+ UTU f <*> UTU x = UTU $ apply <$> f <*> x++instance (Traversable (t u), Traversable u) => Traversable (UTU 'Co 'Co t u) where+ UTU x ->> f = UTU <$> x ->>> f++instance (Distributive (t u), Distributive u) => Distributive (UTU 'Co 'Co t u) where+ x >>- f = UTU . comap distribute . distribute $ composition . f <$> x++instance (forall u' . Pointable u', Liftable t) => Liftable (UTU 'Co 'Co t) where+ lift = UTU . point . lift++instance (forall u' . Extractable u', Lowerable t) => Lowerable (UTU 'Co 'Co t) where+ lower = lower . extract . composition++instance (forall u' . Setoid (u' :.: t u' >< a)) => Setoid (UTU 'Co 'Co t u a) where+ UTU x == UTU y = x == y++instance (forall u' . Chain (u' :.: t u' >< a)) => Chain (UTU 'Co 'Co t u a) where+ UTU x <=> UTU y = x <=> y++instance (forall u' . Semigroup (u' :.: t u' >< a)) => Semigroup (UTU 'Co 'Co t u a) where+ UTU x + UTU y = UTU $ x + y++instance (forall u' . Monoid (u' :.: t u' >< a)) => Monoid (UTU 'Co 'Co t u a) where+ zero = UTU zero
Pandora/Paradigm/Junction/Transformer.hs view
@@ -1,115 +1,10 @@-module Pandora.Paradigm.Junction.Transformer (T (..), type (:!:), up, Y (..), type (:>:)) where--import Pandora.Core.Functor (type (:.:))-import Pandora.Core.Morphism ((.), ($))-import Pandora.Pattern.Functor.Covariant (Covariant ((<$>), (<$$>), comap))-import Pandora.Pattern.Functor.Pointable (Pointable (point))-import Pandora.Pattern.Functor.Extractable (Extractable (extract))-import Pandora.Pattern.Functor.Avoidable (Avoidable (idle))-import Pandora.Pattern.Functor.Alternative (Alternative ((<+>)))-import Pandora.Pattern.Functor.Applicative (Applicative ((<*>), apply))-import Pandora.Pattern.Functor.Traversable (Traversable ((->>), (->>>)))-import Pandora.Pattern.Functor.Distributive (Distributive ((>>-), distribute))-import Pandora.Pattern.Functor.Liftable (Liftable (lift))-import Pandora.Pattern.Functor.Lowerable (Lowerable (lower))-import Pandora.Pattern.Object.Setoid (Setoid ((==)))-import Pandora.Pattern.Object.Chain (Chain ((<=>)))-import Pandora.Pattern.Object.Semigroup (Semigroup ((+)))-import Pandora.Pattern.Object.Monoid (Monoid (zero))--infixr 0 :!:, :>:-type (:!:) t u = T t u-type (:>:) t u = Y t u---newtype T t u a = T { t :: (u :.: t) a }--instance (Covariant t, Covariant u) => Covariant (T t u) where- f <$> T x = T $ f <$$> x--instance (Pointable t, Pointable u) => Pointable (T t u) where- point = T . point . point--instance (Extractable t, Extractable u) => Extractable (T t u) where- extract = extract . extract . t--instance (Covariant t, Avoidable u) => Avoidable (T t u) where- idle = T idle--instance (Covariant t, Alternative u) => Alternative (T t u) where- T x <+> T y = T $ x <+> y--instance (Applicative t, Applicative u) => Applicative (T t u) where- T f <*> T x = T $ apply <$> f <*> x--instance Pointable t => Liftable (T t) where- lift x = T $ point <$> x--instance Extractable t => Lowerable (T t) where- lower (T x) = extract <$> x--instance (Traversable t, Traversable u) => Traversable (T t u) where- T x ->> f = T <$> x ->>> f--instance (Distributive t, Distributive u) => Distributive (T t u) where- x >>- f = T . comap distribute . distribute $ t . f <$> x--instance Setoid ((u :.: t) a) => Setoid (T t u a) where- T x == T y = x == y--instance Chain ((u :.: t) a) => Chain (T t u a) where- T x <=> T y = x <=> y--instance Semigroup ((u :.: t) a) => Semigroup (T t u a) where- T x + T y = T $ x + y--instance Monoid ((u :.: t) a) => Monoid (T t u a) where- zero = T zero--up :: Pointable u => t a -> T t u a-up = T . point---newtype Y t u a = Y { y :: (u :.: t u) a }--instance (Covariant (t u), Covariant u) => Covariant (Y t u) where- f <$> Y x = Y $ f <$$> x--instance (Pointable (t u), Pointable u) => Pointable (Y t u) where- point = Y . point . point--instance (Extractable (t u), Extractable u) => Extractable (Y t u) where- extract = extract . extract . y--instance (Covariant (t u), Avoidable u) => Avoidable (Y t u) where- idle = Y idle--instance (Covariant (t u), Alternative u) => Alternative (Y t u) where- Y x <+> Y y = Y $ x <+> y--instance (Applicative (t u), Applicative u) => Applicative (Y t u) where- Y f <*> Y x = Y $ apply <$> f <*> x--instance (Traversable (t u), Traversable u) => Traversable (Y t u) where- Y x ->> f = Y <$> x ->>> f--instance (Distributive (t u), Distributive u) => Distributive (Y t u) where- x >>- f = Y . comap distribute . distribute $ y . f <$> x--instance (forall u' . Pointable u', Liftable t) => Liftable (Y t) where- lift = Y . point . lift--instance (forall u' . Extractable u', Lowerable t) => Lowerable (Y t) where- lower = lower . extract . y--instance (forall u' . Setoid ((u' :.: t u') a)) => Setoid (Y t u a) where- Y x == Y y = x == y--instance (forall u' . Chain ((u' :.: t u') a)) => Chain (Y t u a) where- Y x <=> Y y = x <=> y+module Pandora.Paradigm.Junction.Transformer (Transformer (..)) where -instance (forall u' . Semigroup ((u' :.: t u') a)) => Semigroup (Y t u a) where- Y x + Y y = Y $ x + y+import Pandora.Pattern.Functor.Covariant (Covariant)+import Pandora.Pattern.Functor.Pointable (Pointable) -instance (forall u' . Monoid ((u' :.: t u') a)) => Monoid (Y t u a) where- zero = Y zero+class Transformer t where+ {-# MINIMAL lay, equip #-}+ type Layout (t :: * -> *) (u :: * -> *) (a :: *) = r | r -> t u+ lay :: Covariant u => u a -> Layout t u a+ equip :: Pointable u => t a -> Layout t u a
Pandora/Paradigm/Structure/Stack.hs view
@@ -1,11 +1,9 @@ module Pandora.Paradigm.Structure.Stack (Stack, push, top, pop, linearize) where -import Pandora.Core.Functor (type (:.:))-import Pandora.Core.Morphism ((.), ($))+import Pandora.Core.Functor (type (:.:), type (><))+import Pandora.Core.Morphism ((.)) import Pandora.Paradigm.Basis.Twister (Twister ((:<)), unwrap) import Pandora.Paradigm.Basis.Maybe (Maybe (Just, Nothing))-import Pandora.Paradigm.Basis.Predicate (Predicate (Predicate))-import Pandora.Paradigm.Junction.Transformer (Y (Y), type (:>:)) import Pandora.Paradigm.Inventory.Stateful (fold) import Pandora.Pattern.Functor.Covariant (Covariant ((<$>))) import Pandora.Pattern.Functor.Pointable (Pointable (point))@@ -13,10 +11,9 @@ import Pandora.Pattern.Functor.Alternative (Alternative ((<+>))) import Pandora.Pattern.Functor.Traversable (Traversable) import Pandora.Pattern.Functor.Bindable (Bindable ((>>=)))-import Pandora.Pattern.Object.Setoid (bool) -- | Linear data structure that serves as a collection of elements-type Stack a = (Maybe :.: Twister Maybe) a+type Stack a = Maybe :.: Twister Maybe >< a push :: a -> Stack a -> Stack a push x stack = ((:<) x . Just <$> stack) <+> (point . point) x
+ Pandora/Pattern.hs view
@@ -0,0 +1,4 @@+module Pandora.Pattern (module Exports) where++import Pandora.Pattern.Object as Exports+import Pandora.Pattern.Functor as Exports
Pandora/Pattern/Functor/Covariant.hs view
@@ -50,7 +50,7 @@ x <&&> f = f <$$> x (<&&&>) :: (Covariant u, Covariant v) => t :.: u :.: v >< a -> (a -> b) -> t :.: u :.: v >< b-+ x <&&&> f = f <$$$> x (<&&&&>) :: (Covariant u, Covariant v, Covariant w) => t :.: u :.: v :.: w >< a -> (a -> b) -> t :.: u :.: v :.: w >< b x <&&&&> f = f <$$$$> x
pandora.cabal view
@@ -1,5 +1,5 @@ name: pandora-version: 0.1.7+version: 0.1.8 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@@ -20,9 +20,12 @@ library exposed-modules: -- Axioms set+ Pandora.Core Pandora.Core.Functor Pandora.Core.Morphism Pandora.Core.Transformation++ Pandora.Paradigm -- Basic constructions Pandora.Paradigm.Basis Pandora.Paradigm.Basis.Conclusion@@ -50,6 +53,12 @@ Pandora.Paradigm.Junction.Composition Pandora.Paradigm.Junction.Transformer Pandora.Paradigm.Junction.Kan+ Pandora.Paradigm.Junction.Schemes+ Pandora.Paradigm.Junction.Schemes.TU+ Pandora.Paradigm.Junction.Schemes.TUV+ Pandora.Paradigm.Junction.Schemes.TUVW+ Pandora.Paradigm.Junction.Schemes.UT+ Pandora.Paradigm.Junction.Schemes.UTU -- Control flow primitives Pandora.Paradigm.Controlflow Pandora.Paradigm.Controlflow.Observable@@ -65,6 +74,8 @@ Pandora.Paradigm.Structure.Stack Pandora.Paradigm.Structure.Graph Pandora.Paradigm.Structure.Binary++ Pandora.Pattern -- Functor typeclassess Pandora.Pattern.Functor Pandora.Pattern.Functor.Adjoint