∀(s : Type) → { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : s → { state : s, val : a → b }) → ∀(fa : s → { state : s, val : a }) → ∀(new : s) → { state : s, val : b } , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : s → { state : s, val : a }) → ∀(k : a → s → { state : s, val : b }) → ∀(new : s) → { state : s, val : b } , map : ∀(a : Type) → ∀(b : Type) → ∀(f : a → b) → ∀(fa : s → { state : s, val : a }) → ∀(new : s) → { state : s, val : b } , pure : ∀(a : Type) → ∀(x : a) → ∀(env : s) → { state : s, val : a } }
∀(s : Type) → ∀(f : s → s) → ∀(new : s) → { state : s, val : {} }
∀(s : Type) → { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : s → { state : s, val : a → b }) → ∀(fa : s → { state : s, val : a }) → ∀(new : s) → { state : s, val : b } , map : ∀(a : Type) → ∀(b : Type) → ∀(f : a → b) → ∀(fa : s → { state : s, val : a }) → ∀(new : s) → { state : s, val : b } , pure : ∀(a : Type) → ∀(x : a) → ∀(env : s) → { state : s, val : a } }
∀(s : Type) → ∀(a : Type) → ∀(state : s → { state : s, val : a }) → ∀(env : s) → a
∀(s : Type) → ∀(a : Type) → ∀(state : s → { state : s, val : a }) → ∀(env : s) → s
∀(s : Type) → ∀(a : Type) → Type
λ(s : Type) → λ(a : Type) → s → { state : s, val : a }
∀(s : Type) → ∀(env : s) → { state : s, val : s }
∀(s : Type) → ∀(new : s) → ∀(env : s) → { state : s, val : {} }
∀(s : Type) → ∀(a : Type) → ∀(f : s → s) → ∀(state : s → { state : s, val : a }) → ∀(new : s) → { state : s, val : a }
∀(s : Type) → ∀(a : Type) → ∀(f : s → a) → ∀(new : s) → { state : s, val : a }
∀(s : Type) → { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : s → { state : s, val : a → b }) → ∀(fa : s → { state : s, val : a }) → ∀(new : s) → { state : s, val : b } , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : s → { state : s, val : a }) → ∀(k : a → s → { state : s, val : b }) → ∀(new : s) → { state : s, val : b } , eval : ∀(a : Type) → ∀(state : s → { state : s, val : a }) → ∀(env : s) → a , exec : ∀(a : Type) → ∀(state : s → { state : s, val : a }) → ∀(env : s) → s , get : ∀(a : Type) → ∀(env : s) → { state : s, val : s } , map : ∀(a : Type) → ∀(b : Type) → ∀(f : a → b) → ∀(fa : s → { state : s, val : a }) → ∀(new : s) → { state : s, val : b } , modify : ∀(f : s → s) → ∀(new : s) → { state : s, val : {} } , pure : ∀(a : Type) → ∀(x : a) → ∀(env : s) → { state : s, val : a } , put : ∀(new : s) → ∀(env : s) → { state : s, val : {} } , withState : ∀(a : Type) → ∀(f : s → s) → ∀(state : s → { state : s, val : a }) → ∀(new : s) → { state : s, val : a } }
∀(s : Type) → { map : ∀(a : Type) → ∀(b : Type) → ∀(f : a → b) → ∀(fa : s → { state : s, val : a }) → ∀(new : s) → { state : s, val : b } }
∀(f : Type → Type) → ∀(g : Type → Type) → ∀ ( fApplicative : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a } ) → ∀ ( gApplicative : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : g (a → b)) → ∀(fa : g@1 a) → g@1 b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : g@1 a) → g@1 b , pure : ∀(a : Type) → a → g a } ) → { ap : ∀(a : Type) → ∀(b : Type) → ∀(k : f (g (a → b))) → ∀(fa : f (g a)) → f (g b) , map : ∀(a : Type) → ∀(b : Type) → ∀(k : a → b) → ∀(fa : f (g a)) → f (g b) , pure : ∀(a : Type) → ∀(x : a) → f (g a) }
∀(f : Type → Type) → ∀(g : Type → Type) → ∀ ( fTraversable : { fold : ∀(a : Type) → ∀(ts : f a) → ∀(b : Type) → ∀(f : a → b → b) → ∀(z : b) → b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , traverse : ∀(f : Type → Type) → ∀ ( applicative : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a } ) → ∀(a : Type) → ∀(b : Type) → (a → f b) → f@1 a → f (f@1 b) } ) → ∀ ( gTraversable : { fold : ∀(a : Type) → ∀(ts : g a) → ∀(b : Type) → ∀(f : a → b → b) → ∀(z : b) → b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : g@1 a) → g@1 b , traverse : ∀(f : Type → Type) → ∀ ( applicative : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a } ) → ∀(a : Type) → ∀(b : Type) → (a → f b) → g a → f (g b) } ) → { fold : ∀(a : Type) → ∀(compose : f (g a)) → ∀(b : Type) → ∀(k : a → b → b) → ∀(z : b) → b , map : ∀(a : Type) → ∀(b : Type) → ∀(k : a → b) → ∀(fa : f (g a)) → f (g b) , traverse : ∀(fA : Type → Type) → ∀ ( applicative : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : fA (a → b)) → ∀(fa : fA a) → fA b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : fA a) → fA b , pure : ∀(a : Type) → a → fA a } ) → ∀(a : Type) → ∀(b : Type) → ∀(k : a → fA b) → f (g a) → fA (f (g b)) }
∀(f : Type → Type) → ∀(g : Type → Type) → ∀(a : Type) → Type
λ(f : Type → Type) → λ(g : Type → Type) → λ(a : Type) → f (g a)
∀(f : Type → Type) → ∀(g : Type → Type) → ∀ ( fFunctor : { map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b } ) → ∀ ( gFunctor : { map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : g@1 a) → g@1 b } ) → { map : ∀(a : Type) → ∀(b : Type) → ∀(k : a → b) → ∀(fa : f (g a)) → f (g b) }
∀(f : Type → Type) → ∀(g : Type → Type) → ∀ ( fFoldable : { fold : ∀(a : Type) → ∀(ts : f a) → ∀(b : Type) → ∀(f : a → b → b) → ∀(z : b) → b } ) → ∀ ( gFoldable : { fold : ∀(a : Type) → ∀(ts : g a) → ∀(b : Type) → ∀(f : a → b → b) → ∀(z : b) → b } ) → { fold : ∀(a : Type) → ∀(compose : f (g a)) → ∀(b : Type) → ∀(k : a → b → b) → ∀(z : b) → b }
∀(h : Type → Type) → ∀ ( functor : { map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : h a) → h b } ) → ∀(f : Type → Type) → ∀(g : Type → Type) → ∀(join : ∀(b : Type) → h (f b) → g b) → ∀(a : Type) → ∀(x : h a) → ∀(b : Type) → ∀(k : a → f b) → g b
∀(f : Type → Type) → ∀(g : Type → Type) → ∀(a : Type) → Type
λ(f : Type → Type) → λ(g : Type → Type) → λ(a : Type) → ∀(b : Type) → (a → f b) → g b
∀(f : Type → Type) → ∀(g : Type → Type) → ∀ ( applicative : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a } ) → ∀(a : Type) → ∀(ran : ∀(b : Type) → (a → f b) → g b) → g a
∀(f : Type → Type) → ∀(g : Type → Type) → { map : ∀(a : Type) → ∀(b : Type) → ∀(h : a → b) → ∀(ran : ∀(b : Type) → (a → f b) → g b) → ∀(c : Type) → ∀(k : b → f c) → g c }
∀(f : Type → Type → Type) → ∀ ( dimap : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(d : Type) → (a → b) → (c → d) → f b c → f a d ) → { dimap : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(d : Type) → (a → b) → (c → d) → f b c → f a d , lmap : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(fn : a → b) → f b c → f a c , rmap : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → (b → c) → f a b → f a c }
∀(f : Type → Type → Type) → Type
λ(f : Type → Type → Type) → { dimap : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(d : Type) → (a → b) → (c → d) → f b c → f a d , lmap : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → (a → b) → f b c → f a c , rmap : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → (b → c) → f a b → f a c }
∀(m : Type) → Type
λ(m : Type) → { op : ∀(x : m) → ∀(y : m) → m }
∀(p : Type → Type → Type) → ∀ ( bifunctor : { bimap : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(d : Type) → (a → c) → (b → d) → p a b → p c d } ) → ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(f : a → c) → p a b → p c b
∀(p : Type → Type → Type) → ∀ ( bifunctor : { bimap : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(d : Type) → (a → c) → (b → d) → p a b → p c d } ) → ∀(a : Type) → ∀(b : Type) → ∀(d : Type) → (b → d) → p a b → p a d
∀(p : Type → Type → Type) → Type
λ(p : Type → Type → Type) → { bimap : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(d : Type) → (a → c) → (b → d) → p a b → p c d }
∀(p : Type → Type → Type) → ∀ ( bifunctor : { bimap : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(d : Type) → (a → c) → (b → d) → p a b → p c d } ) → { bimap : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(d : Type) → (a → c) → (b → d) → p a b → p c d , first : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(f : a → c) → p a b → p c b , second : ∀(a : Type) → ∀(b : Type) → ∀(d : Type) → (b → d) → p a b → p a d }
∀(t : (Type → Type) → Type → Type) → Type
λ(t : (Type → Type) → Type → Type) → { lift : ∀(m : Type → Type) → ∀ ( monad : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : m (a → b)) → ∀(fa : m a) → m b , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : m a) → ∀(k : a → m b) → m b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : m a) → m b , pure : ∀(a : Type) → a → m a } ) → ∀(a : Type) → m a → t m a }
{ ap : ∀(a : Type) → ∀(b : Type) → ∀(f : a → b) → a → b , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : a) → ∀(k : a → b) → b , map : ∀(a : Type) → ∀(b : Type) → ∀(f : a → b) → a → b , pure : ∀(a : Type) → ∀(x : a) → a }
{ ap : ∀(a : Type) → ∀(b : Type) → ∀(f : a → b) → a → b , map : ∀(a : Type) → ∀(b : Type) → ∀(f : a → b) → a → b , pure : ∀(a : Type) → ∀(x : a) → a }
∀(a : Type) → Type
λ(a : Type) → a
{ duplicate : ∀(a : Type) → ∀(x : a) → a , extend : ∀(a : Type) → ∀(b : Type) → ∀(f : a → b) → ∀(x : a) → b , extract : ∀(a : Type) → ∀(x : a) → a , map : ∀(a : Type) → ∀(b : Type) → ∀(f : a → b) → ∀(x : a) → b }
{ map : ∀(a : Type) → ∀(b : Type) → ∀(f : a → b) → a → b }
∀(s : Type) → ∀(m : Type → Type) → ∀ ( monad : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : m (a → b)) → ∀(fa : m a) → m b , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : m a) → ∀(k : a → m b) → m b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : m a) → m b , pure : ∀(a : Type) → a → m a } ) → { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : s → m { state : s, val : a → b }) → ∀(fa : s → m { state : s, val : a }) → ∀(new : s) → m { state : s, val : b } , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : s → m { state : s, val : a }) → ∀(k : a → s → m { state : s, val : b }) → ∀(new : s) → m { state : s, val : b } , map : ∀(a : Type) → ∀(b : Type) → ∀(f : a → b) → ∀(fa : s → m { state : s, val : a }) → ∀(new : s) → m { state : s, val : b } , pure : ∀(a : Type) → ∀(x : a) → ∀(env : s) → m { state : s, val : a } }
∀(s : Type) → ∀(m : Type → Type) → ∀ ( monad : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : m (a → b)) → ∀(fa : m a) → m b , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : m a) → ∀(k : a → m b) → m b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : m a) → m b , pure : ∀(a : Type) → a → m a } ) → ∀(f : s → s) → ∀(new : s) → m { state : s, val : {} }
∀(s : Type) → ∀(m : Type → Type) → ∀ ( monad : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : m (a → b)) → ∀(fa : m a) → m b , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : m a) → ∀(k : a → m b) → m b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : m a) → m b , pure : ∀(a : Type) → a → m a } ) → { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : s → m { state : s, val : a → b }) → ∀(fa : s → m { state : s, val : a }) → ∀(new : s) → m { state : s, val : b } , map : ∀(a : Type) → ∀(b : Type) → ∀(f : a → b) → ∀(fa : s → m { state : s, val : a }) → ∀(new : s) → m { state : s, val : b } , pure : ∀(a : Type) → ∀(x : a) → ∀(env : s) → m { state : s, val : a } }
∀(s : Type) → ∀(m : Type → Type) → ∀ ( monad : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : m (a → b)) → ∀(fa : m a) → m b , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : m a) → ∀(k : a → m b) → m b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : m a) → m b , pure : ∀(a : Type) → a → m a } ) → ∀(a : Type) → ∀(state : s → m { state : s, val : a }) → ∀(env : s) → m a
∀(s : Type) → ∀(m : Type → Type) → ∀ ( monad : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : m (a → b)) → ∀(fa : m a) → m b , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : m a) → ∀(k : a → m b) → m b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : m a) → m b , pure : ∀(a : Type) → a → m a } ) → ∀(a : Type) → ∀(state : s → m { state : s, val : a }) → ∀(env : s) → m s
∀(s : Type) → ∀(m : Type → Type) → ∀(a : Type) → Type
λ(s : Type) → λ(m : Type → Type) → λ(a : Type) → s → m { state : s, val : a }
∀(s : Type) → ∀(m : Type → Type) → ∀ ( monad : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : m (a → b)) → ∀(fa : m a) → m b , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : m a) → ∀(k : a → m b) → m b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : m a) → m b , pure : ∀(a : Type) → a → m a } ) → ∀(env : s) → m { state : s, val : s }
∀(s : Type) → ∀(m : Type → Type) → ∀ ( monad : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : m (a → b)) → ∀(fa : m a) → m b , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : m a) → ∀(k : a → m b) → m b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : m a) → m b , pure : ∀(a : Type) → a → m a } ) → ∀(new : s) → ∀(env : s) → m { state : s, val : {} }
∀(s : Type) → ∀(m : Type → Type) → ∀(a : Type) → ∀(f : s → s) → ∀(state : s → m { state : s, val : a }) → ∀(new : s) → m { state : s, val : a }
∀(s : Type) → ∀(m : Type → Type) → ∀ ( monad : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : m (a → b)) → ∀(fa : m a) → m b , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : m a) → ∀(k : a → m b) → m b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : m a) → m b , pure : ∀(a : Type) → a → m a } ) → ∀(a : Type) → ∀(f : s → a) → ∀(new : s) → m { state : s, val : a }
∀(s : Type) → ∀(m : Type → Type) → ∀ ( monad : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : m (a → b)) → ∀(fa : m a) → m b , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : m a) → ∀(k : a → m b) → m b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : m a) → m b , pure : ∀(a : Type) → a → m a } ) → { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : s → m { state : s, val : a → b }) → ∀(fa : s → m { state : s, val : a }) → ∀(new : s) → m { state : s, val : b } , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : s → m { state : s, val : a }) → ∀(k : a → s → m { state : s, val : b }) → ∀(new : s) → m { state : s, val : b } , eval : ∀(a : Type) → ∀(state : s → m { state : s, val : a }) → ∀(env : s) → m a , exec : ∀(a : Type) → ∀(state : s → m { state : s, val : a }) → ∀(env : s) → m s , get : ∀(env : s) → m { state : s, val : s } , gets : ∀(a : Type) → ∀(f : s → a) → ∀(new : s) → m { state : s, val : a } , lift : ∀(a : Type) → ∀(ma : m a) → ∀(env : s) → m { state : s, val : a } , map : ∀(a : Type) → ∀(b : Type) → ∀(f : a → b) → ∀(fa : s → m { state : s, val : a }) → ∀(new : s) → m { state : s, val : b } , modify : ∀(a : Type) → ∀(f : s → s) → ∀(new : s) → m { state : s, val : {} } , pure : ∀(a : Type) → ∀(x : a) → ∀(env : s) → m { state : s, val : a } , put : ∀(a : Type) → ∀(new : s) → ∀(env : s) → m { state : s, val : {} } }
∀(s : Type) → ∀(m : Type → Type) → ∀ ( functor : { map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : m a) → m b } ) → { map : ∀(a : Type) → ∀(b : Type) → ∀(f : a → b) → ∀(fa : s → m { state : s, val : a }) → ∀(new : s) → m { state : s, val : b } }
∀(s : Type) → { lift : ∀(m : Type → Type) → ∀ ( monad : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : m (a → b)) → ∀(fa : m a) → m b , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : m a) → ∀(k : a → m b) → m b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : m a) → m b , pure : ∀(a : Type) → a → m a } ) → ∀(a : Type) → ∀(ma : m a) → ∀(env : s) → m { state : s, val : a } }
∀(f : Type → Type) → ∀ ( t : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a } ) → { map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b }
∀(f : Type → Type) → ∀ ( app : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a } ) → ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(g : a → b → c) → ∀(fa : f a) → ∀(fb : f b) → f c
∀(f : Type → Type) → ∀ ( app : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a } ) → ∀(a : Type) → ∀(b : Type) → ∀(fa : f a) → ∀(fb : f b) → f b
∀(f : Type → Type) → Type
λ(f : Type → Type) → { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a }
∀(f : Type → Type) → ∀ ( app : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a } ) → ∀(a : Type) → ∀(b : Type) → ∀(fa : f a) → ∀(fb : f b) → f a
∀(f : Type → Type) → ∀ ( applicative : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a } ) → { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , leftApConst : ∀(a : Type) → ∀(b : Type) → ∀(fa : f a) → ∀(fb : f b) → f a , liftA2 : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(g : a → b → c) → ∀(fa : f a) → ∀(fb : f b) → f c , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a , rightApConst : ∀(a : Type) → ∀(b : Type) → ∀(fa : f a) → ∀(fb : f b) → f b }
∀(a : Type) → ∀(b : Type) → ∀(eithers : List < Left : a | Right : b >) → { lefts : List a, rights : List b }
∀(a : Type) → { ap : ∀(a : Type) → ∀(b : Type) → ∀(k : < Left : a@1 | Right : a → b >) → ∀(fa : < Left : a@1 | Right : a >) → < Left : a@1 | Right : b > , bind : ∀(b : Type) → ∀(c : Type) → ∀(fa : < Left : a | Right : b >) → ∀(k : b → < Left : a | Right : c >) → < Left : a | Right : c > , map : ∀(a : Type) → ∀(b : Type) → ∀(k : a → b) → ∀(fa : < Left : a@1 | Right : a >) → < Left : a@1 | Right : b > , pure : ∀(b : Type) → ∀(x : b) → < Left : a | Right : b > }
∀(a : Type) → ∀(b : Type) → ∀(e : < Left : a | Right : b >) → Bool
∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(d : Type) → ∀(f : a → c) → ∀(g : b → d) → ∀(e : < Left : a | Right : b >) → < Left : c | Right : d >
{ bimap : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(d : Type) → ∀(f : a → c) → ∀(g : b → d) → ∀(e : < Left : a | Right : b >) → < Left : c | Right : d > }
∀(a : Type) → ∀(semi : { op : ∀(x : a) → ∀(y : a) → a }) → { ap : ∀(b : Type) → ∀(c : Type) → ∀(g : < Left : a | Right : b → c >) → ∀(fa : < Left : a | Right : b >) → < Left : a | Right : c > , map : ∀(b : Type) → ∀(c : Type) → ∀(f : b → c) → ∀(either : < Left : a | Right : b >) → < Left : a | Right : c > , pure : ∀(b : Type) → ∀(x : b) → < Left : a | Right : b > }
∀(a : Type) → { ap : ∀(a : Type) → ∀(b : Type) → ∀(k : < Left : a@1 | Right : a → b >) → ∀(fa : < Left : a@1 | Right : a >) → < Left : a@1 | Right : b > , map : ∀(a : Type) → ∀(b : Type) → ∀(k : a → b) → ∀(fa : < Left : a@1 | Right : a >) → < Left : a@1 | Right : b > , pure : ∀(b : Type) → ∀(x : b) → < Left : a | Right : b > }
∀(a : Type) → ∀(b : Type) → ∀(eithers : List < Left : a | Right : b >) → List a
∀(a : Type) → ∀(b : Type) → ∀(def : a) → ∀(e : < Left : a | Right : b >) → a
∀(a : Type) → { fold : ∀(b : Type) → ∀(either : < Left : a | Right : b >) → ∀(c : Type) → ∀(f : b → c → c) → ∀(z : c) → c , map : ∀(b : Type) → ∀(c : Type) → ∀(f : b → c) → ∀(either : < Left : a | Right : b >) → < Left : a | Right : c > , traverse : ∀(f : Type → Type) → ∀ ( applicative : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a } ) → ∀(b : Type) → ∀(c : Type) → ∀(g : b → f c) → ∀(ts : < Left : a | Right : b >) → f < Left : a | Right : c > }
∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(f : a → c) → ∀(e : < Left : a | Right : b >) → < Left : c | Right : b >
∀(a : Type) → ∀(b : Type) → Type
λ(a : Type) → λ(b : Type) → < Left : a | Right : b >
∀(a : Type) → ∀(b : Type) → ∀(d : Type) → ∀(f : b → d) → ∀(e : < Left : a | Right : b >) → < Left : a | Right : d >
∀(a : Type) → ∀(b : Type) → ∀(e : < Left : a | Right : b >) → Bool
∀(a : Type) → ∀(b : Type) → ∀(eithers : List < Left : a | Right : b >) → List b
∀(a : Type) → ∀(b : Type) → { Left : ∀(Left : a) → < Left : a | Right : b > , Right : ∀(Right : b) → < Left : a | Right : b > , ap : ∀(a : Type) → ∀(b : Type) → ∀(k : < Left : a@1 | Right : a → b >) → ∀(fa : < Left : a@1 | Right : a >) → < Left : a@1 | Right : b > , bimap : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(d : Type) → ∀(f : a → c) → ∀(g : b → d) → ∀(e : < Left : a | Right : b >) → < Left : c | Right : d > , bind : ∀(b : Type) → ∀(c : Type) → ∀(fa : < Left : a | Right : b >) → ∀(k : b → < Left : a | Right : c >) → < Left : a | Right : c > , fold : ∀(b : Type) → ∀(either : < Left : a | Right : b >) → ∀(c : Type) → ∀(f : b → c → c) → ∀(z : c) → c , fromLeft : ∀(def : a) → ∀(e : < Left : a | Right : b >) → a , fromRight : ∀(def : b) → ∀(e : < Left : a | Right : b >) → b , isLeft : ∀(e : < Left : a | Right : b >) → Bool , isRight : ∀(e : < Left : a | Right : b >) → Bool , lefts : ∀(eithers : List < Left : a | Right : b >) → List a , map : ∀(b : Type) → ∀(c : Type) → ∀(f : b → c) → ∀(either : < Left : a | Right : b >) → < Left : a | Right : c > , mapBoth : ∀(c : Type) → ∀(d : Type) → ∀(f : a → c) → ∀(g : b → d) → ∀(e : < Left : a | Right : b >) → < Left : c | Right : d > , mapLeft : ∀(c : Type) → ∀(f : a → c) → ∀(e : < Left : a | Right : b >) → < Left : c | Right : b > , mapRight : ∀(d : Type) → ∀(f : b → d) → ∀(e : < Left : a | Right : b >) → < Left : a | Right : d > , partition : ∀(eithers : List < Left : a | Right : b >) → { lefts : List a, rights : List b } , pure : ∀(b : Type) → ∀(x : b) → < Left : a | Right : b > , rights : ∀(eithers : List < Left : a | Right : b >) → List b , traverse : ∀(f : Type → Type) → ∀ ( applicative : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a } ) → ∀(b : Type) → ∀(c : Type) → ∀(g : b → f c) → ∀(ts : < Left : a | Right : b >) → f < Left : a | Right : c > }
∀(a : Type) → { map : ∀(b : Type) → ∀(c : Type) → ∀(f : b → c) → ∀(either : < Left : a | Right : b >) → < Left : a | Right : c > }
∀(a : Type) → { fold : ∀(b : Type) → ∀(either : < Left : a | Right : b >) → ∀(c : Type) → ∀(f : b → c → c) → ∀(z : c) → c }
∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(f : a → c) → ∀(g : b → c) → ∀(e : < Left : a | Right : b >) → c
∀(a : Type) → ∀(b : Type) → ∀(def : b) → ∀(e : < Left : a | Right : b >) → b
∀(f : Type → Type) → ∀ ( monad : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : f a) → ∀(k : a → f b) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a } ) → { ap : ∀(a : Type) → ∀(b : Type) → ∀(m : ∀(b : Type) → ((a → b@1) → b) → f b) → ∀(n : ∀(b : Type) → (a → b) → f b) → ∀(c : Type) → ∀(k : b → c) → f c , bind : ∀(a : Type) → ∀(b : Type) → ∀(yoneda : ∀(b : Type) → (a → b) → f b) → ∀(k : a → ∀(b : Type) → (b@1 → b) → f b) → ∀(c : Type) → ∀(l : b → c) → f c , map : ∀(a : Type) → ∀(b : Type) → ∀(h : a → b) → ∀(ran : ∀(b : Type) → (a → b) → f b) → ∀(c : Type) → ∀(k : b → c) → f c , pure : ∀(a : Type) → ∀(x : a) → ∀(b : Type) → ∀(f : a → b) → f@1 b }
∀(f : Type → Type) → ∀ ( applicative : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a } ) → { ap : ∀(a : Type) → ∀(b : Type) → ∀(m : ∀(b : Type) → ((a → b@1) → b) → f b) → ∀(n : ∀(b : Type) → (a → b) → f b) → ∀(c : Type) → ∀(k : b → c) → f c , map : ∀(a : Type) → ∀(b : Type) → ∀(h : a → b) → ∀(ran : ∀(b : Type) → (a → b) → f b) → ∀(c : Type) → ∀(k : b → c) → f c , pure : ∀(a : Type) → ∀(x : a) → ∀(b : Type) → ∀(f : a → b) → f@1 b }
∀(f : Type → Type) → ∀ ( traversable : { fold : ∀(a : Type) → ∀(ts : f a) → ∀(b : Type) → ∀(f : a → b → b) → ∀(z : b) → b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , traverse : ∀(f : Type → Type) → ∀ ( applicative : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a } ) → ∀(a : Type) → ∀(b : Type) → (a → f b) → f@1 a → f (f@1 b) } ) → { fold : ∀(a : Type) → ∀(yoneda : ∀(b : Type) → (a → b) → f b) → ∀(b : Type) → ∀(k : a → b → b) → ∀(z : b) → b , map : ∀(a : Type) → ∀(b : Type) → ∀(h : a → b) → ∀(ran : ∀(b : Type) → (a → b) → f b) → ∀(c : Type) → ∀(k : b → c) → f c , traverse : ∀(g : Type → Type) → ∀ ( applicative : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : g (a → b)) → ∀(fa : g@1 a) → g@1 b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : g@1 a) → g@1 b , pure : ∀(a : Type) → a → g a } ) → ∀(a : Type) → ∀(b : Type) → ∀(k : a → g b) → ∀(yoneda : ∀(b : Type) → (a → b) → f b) → g (∀(b : Type) → (b@1 → b) → f b) }
∀(f : Type → Type) → ∀ ( functor : { map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b } ) → ∀(a : Type) → ∀(x : f a) → ∀(b : Type) → ∀(k : a → b) → f b
∀(g : Type → Type) → ∀(a : Type) → Type
λ(g : Type → Type) → λ(a : Type) → ∀(b : Type) → (a → b) → g b
∀(f : Type → Type) → ∀(a : Type) → ∀(ran : ∀(b : Type) → (a → b) → f b) → f a
∀(f : Type → Type) → { map : ∀(a : Type) → ∀(b : Type) → ∀(h : a → b) → ∀(ran : ∀(b : Type) → (a → b) → f b) → ∀(c : Type) → ∀(k : b → c) → f c }
∀(f : Type → Type) → ∀ ( foldable : { fold : ∀(a : Type) → ∀(ts : f a) → ∀(b : Type) → ∀(f : a → b → b) → ∀(z : b) → b } ) → { fold : ∀(a : Type) → ∀(yoneda : ∀(b : Type) → (a → b) → f b) → ∀(b : Type) → ∀(k : a → b → b) → ∀(z : b) → b }
{ ap : ∀(a : Type) → ∀(b : Type) → ∀(g : List (a → b)) → ∀(fa : List a) → List b , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : List a) → ∀(k : a → List b) → List b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(list : List a) → List b , pure : ∀(a : Type) → ∀(x : a) → List a }
{ ap : ∀(a : Type) → ∀(b : Type) → ∀(g : List (a → b)) → ∀(fa : List a) → List b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(list : List a) → List b , pure : ∀(a : Type) → ∀(x : a) → List a }
∀(a : Type) → { op : ∀(xs : List a) → ∀(ys : List a) → List a }
{ fold : ∀(a : Type) → List a → ∀(list : Type) → ∀(cons : a → list → list) → ∀(nil : list) → list , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(list : List a) → List b , traverse : ∀(f : Type → Type) → ∀ ( applicative : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a } ) → ∀(a : Type) → ∀(b : Type) → ∀(g : a → f b) → ∀(ts : List a) → f (List b) }
∀(a : Type) → { op : ∀(xs : List a) → ∀(ys : List a) → List a, unit : List a }
{ map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(list : List a) → List b }
{ fold : ∀(a : Type) → List a → ∀(list : Type) → ∀(cons : a → list → list) → ∀(nil : list) → list }
{ ap : ∀(a : Type) → ∀(b : Type) → ∀(nelF : { head : a → b, tail : List (a → b) }) → ∀(nel : { head : a, tail : List a }) → { head : b, tail : List b } , map : ∀(a : Type) → ∀(b : Type) → ∀(k : a → b) → ∀(nel : { head : a, tail : List a }) → { head : b, tail : List b } , pure : ∀(a : Type) → ∀(x : a) → { head : a, tail : List a } }
∀(a : Type) → { op : ∀(x : { head : a, tail : List a }) → ∀(y : { head : a, tail : List a }) → { head : a, tail : List a } }
{ fold : ∀(a : Type) → ∀(ts : { head : a, tail : List a }) → ∀(b : Type) → ∀(f : a → b → b) → ∀(z : b) → b , map : ∀(a : Type) → ∀(b : Type) → ∀(k : a → b) → ∀(nel : { head : a, tail : List a }) → { head : b, tail : List b } , traverse : ∀(f : Type → Type) → ∀ ( applicative : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a } ) → ∀(a : Type) → ∀(b : Type) → ∀(k : a → f b) → ∀(nel : { head : a, tail : List a }) → f { head : b, tail : List b } }
∀(a : Type) → Type
λ(a : Type) → { head : a, tail : List a }
{ duplicate : ∀(a : Type) → ∀(nel : { head : a, tail : List a }) → { head : { head : a, tail : List a } , tail : List { head : a, tail : List a } } , extend : ∀(a : Type) → ∀(b : Type) → ∀(f : { head : a, tail : List a } → b) → ∀(nel : { head : a, tail : List a }) → { head : b, tail : List b } , extract : ∀(a : Type) → ∀(nel : { head : a, tail : List a }) → a , map : ∀(a : Type) → ∀(b : Type) → ∀(f : a → b) → ∀(nel : { head : a, tail : List a }) → { head : b, tail : List b } }
{ map : ∀(a : Type) → ∀(b : Type) → ∀(k : a → b) → ∀(nel : { head : a, tail : List a }) → { head : b, tail : List b } }
{ fold : ∀(a : Type) → ∀(ts : { head : a, tail : List a }) → ∀(b : Type) → ∀(f : a → b → b) → ∀(z : b) → b }
∀(a : Type) → ∀(nel : { head : a, tail : List a }) → List a
∀(f : Type → Type) → ∀ ( comonad : { duplicate : ∀(a : Type) → f a → f (f a) , extend : ∀(a : Type) → ∀(b : Type) → ∀(f : f a → b) → f@1 a → f@1 b , extract : ∀(a : Type) → f a → a , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b } ) → ∀(g : Type → Type) → ∀(a : Type) → ∀(x : g a) → ∀(r : Type) → ∀(k : ∀(b : Type) → (f b → a) → g b → r) → r
∀(f : Type → Type) → ∀(g : Type → Type) → ∀(a : Type) → Type
λ(f : Type → Type) → λ(g : Type → Type) → λ(a : Type) → ∀(r : Type) → (∀(b : Type) → (f b → a) → g b → r) → r
∀(h : Type → Type) → ∀ ( functor : { map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : h a) → h b } ) → ∀(f : Type → Type) → ∀(g : Type → Type) → ∀(duplicate : ∀(b : Type) → g b → h (f b)) → ∀(a : Type) → ∀(lan : ∀(r : Type) → (∀(b : Type) → (f b → a) → g b → r) → r) → h a
∀(f : Type → Type) → ∀(g : Type → Type) → { map : ∀(a : Type) → ∀(b : Type) → ∀(h : a → b) → ∀(lan : ∀(r : Type) → (∀(b : Type) → (f b → a) → g b → r) → r) → ∀(r : Type) → ∀(k : ∀(c : Type) → (f c → b) → g c → r) → r }
∀(r : Type) → { ap : ∀(a : Type) → ∀(b : Type) → ∀(k : r → a → b) → ∀(fa : r → a) → ∀(env : r) → b , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : r → a) → ∀(k : a → r → b) → ∀(env : r) → b , map : ∀(a : Type) → ∀(b : Type) → ∀(k : a → b) → ∀(reader : r → a) → ∀(rr : r) → b , pure : ∀(a : Type) → ∀(x : a) → ∀(env : r) → a }
∀(r : Type) → ∀(a : Type) → ∀(rPrime : Type) → ∀(f : rPrime → r) → ∀(reader : r → a) → ∀(newR : rPrime) → a
∀(r : Type) → { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : r → a → b) → ∀(fa : r → a) → ∀(env : r) → b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(reader : r → a) → ∀(rr : r) → b , pure : ∀(a : Type) → ∀(x : a) → ∀(env : r) → a }
∀(r : Type) → ∀(a : Type) → ∀(f : r → r) → ∀(reader : r → a) → ∀(env : r) → a
∀(r : Type) → ∀(a : Type) → Type
λ(r : Type) → λ(a : Type) → r → a
∀(r : Type) → ∀(a : Type) → ∀(f : r → a) → ∀(env : r) → a
∀(r : Type) → { ap : ∀(a : Type) → ∀(b : Type) → ∀(k : r → a → b) → ∀(fa : r → a) → ∀(env : r) → b , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : r → a) → ∀(k : a → r → b) → ∀(env : r) → b , map : ∀(a : Type) → ∀(b : Type) → ∀(k : a → b) → ∀(reader : r → a) → ∀(rr : r) → b , pure : ∀(a : Type) → ∀(x : a) → ∀(env : r) → a , withReader : ∀(a : Type) → ∀(rPrime : Type) → ∀(f : rPrime → r) → ∀(reader : r → a) → ∀(newR : rPrime) → a }
∀(r : Type) → ∀(env : r) → r
∀(r : Type) → { map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(reader : r → a) → ∀(rr : r) → b }
∀(w : Type → Type) → ∀ ( comonad : { duplicate : ∀(a : Type) → w a → w (w a) , extend : ∀(a : Type) → ∀(b : Type) → ∀(f : w a → b) → w a → w b , extract : ∀(a : Type) → w a → a , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : w a) → w b } ) → { map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : w a) → w b }
∀(w : Type → Type) → Type
λ(w : Type → Type) → { duplicate : ∀(a : Type) → w a → w (w a) , extend : ∀(a : Type) → ∀(b : Type) → ∀(f : w a → b) → w a → w b , extract : ∀(a : Type) → w a → a , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : w a) → w b }
∀(w : Type → Type) → ∀(extract : ∀(a : Type) → w a → a) → ∀(extend : ∀(a : Type) → ∀(b : Type) → ∀(f : w a → b) → w a → w b) → { duplicate : ∀(a : Type) → w a → w (w a) , extend : ∀(a : Type) → ∀(b : Type) → ∀(f : w a → b) → w a → w b , extract : ∀(a : Type) → w a → a , map : ∀(a : Type) → ∀(b : Type) → ∀(f : a → b) → w a → w b }
∀(f : Type → Type) → ∀ ( t : { fold : ∀(a : Type) → ∀(ts : f a) → ∀(b : Type) → ∀(f : a → b → b) → ∀(z : b) → b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , traverse : ∀(f : Type → Type) → ∀ ( applicative : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a } ) → ∀(a : Type) → ∀(b : Type) → (a → f b) → f@1 a → f (f@1 b) } ) → { map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b }
∀(t : Type → Type) → ∀ ( traverse : ∀(f : Type → Type) → ∀ ( applicative : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a } ) → ∀(a : Type) → ∀(b : Type) → ∀(g : a → f b) → ∀(ts : t a) → f (t b) ) → { fold : ∀(a : Type) → ∀(ts : t a) → ∀(b : Type) → ∀(f : a → b → b) → ∀(z : b) → b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(ts : t a) → t b , traverse : ∀(f : Type → Type) → ∀ ( applicative : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a } ) → ∀(a : Type) → ∀(b : Type) → ∀(g : a → f b) → ∀(ts : t a) → f (t b) }
∀(t : Type → Type) → Type
λ(t : Type → Type) → { fold : ∀(a : Type) → ∀(ts : t a) → ∀(b : Type) → ∀(f : a → b → b) → ∀(z : b) → b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : t a) → t b , traverse : ∀(f : Type → Type) → ∀ ( applicative : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a } ) → ∀(a : Type) → ∀(b : Type) → (a → f b) → t a → f (t b) }
∀(t : Type → Type) → ∀ ( traversable : { fold : ∀(a : Type) → ∀(ts : t a) → ∀(b : Type) → ∀(f : a → b → b) → ∀(z : b) → b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : t a) → t b , traverse : ∀(f : Type → Type) → ∀ ( applicative : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a } ) → ∀(a : Type) → ∀(b : Type) → (a → f b) → t a → f (t b) } ) → ∀(f : Type → Type) → ∀ ( applicative : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a } ) → ∀(a : Type) → ∀(ts : t (f a)) → f (t a)
∀(f : Type → Type) → ∀ ( t : { fold : ∀(a : Type) → ∀(ts : f a) → ∀(b : Type) → ∀(f : a → b → b) → ∀(z : b) → b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , traverse : ∀(f : Type → Type) → ∀ ( applicative : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a } ) → ∀(a : Type) → ∀(b : Type) → (a → f b) → f@1 a → f (f@1 b) } ) → { fold : ∀(a : Type) → ∀(ts : f a) → ∀(b : Type) → ∀(f : a → b → b) → ∀(z : b) → b }
∀(m : Type) → Type
λ(m : Type) → { op : ∀(x : m) → ∀(y : m) → m, unit : m }
∀(m : Type) → ∀(t : { op : ∀(x : m) → ∀(y : m) → m, unit : m }) → { op : ∀(x : m) → ∀(y : m) → m }
∀(f : Type → Type → Type) → ∀ ( category : { compose : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → f b c → f a b → f a c , identity : ∀(a : Type) → f a a } ) → { compose : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → f b c → f a b → f a c }
∀(f : Type → Type → Type) → Type
λ(f : Type → Type → Type) → { compose : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → f b c → f a b → f a c , identity : ∀(a : Type) → f a a }
{ ap : ∀(a : Type) → ∀(b : Type) → ∀(k : List (a → b) → List (a → b)) → ∀(fa : List a → List a) → List b → List b , bind : ∀(a : Type) → ∀(b : Type) → ∀(f : List a → List a) → ∀(k : a → List b → List b) → List b → List b , map : ∀(a : Type) → ∀(b : Type) → ∀(k : a → b) → ∀(fa : List a → List a) → List b → List b , pure : ∀(a : Type) → ∀(x : a) → ∀(l : List a) → List a }
{ ap : ∀(a : Type) → ∀(b : Type) → ∀(k : List (a → b) → List (a → b)) → ∀(fa : List a → List a) → List b → List b , map : ∀(a : Type) → ∀(b : Type) → ∀(k : a → b) → ∀(fa : List a → List a) → List b → List b , pure : ∀(a : Type) → ∀(x : a) → ∀(l : List a) → List a }
∀(a : Type) → { op : ∀(f : List a → List a) → ∀(g : List a → List a) → ∀(x : List a) → List a }
∀(a : Type) → { op : ∀(f : List a → List a) → ∀(g : List a → List a) → ∀(x : List a) → List a , unit : ∀(x : List a) → List a }
∀(a : Type) → Type
λ(a : Type) → List a → List a
∀(a : Type) → ∀(f : List a → List a) → ∀(g : List a → List a) → ∀(x : List a) → List a
∀(a : Type) → ∀(xs : List a → List a) → ∀(y : a) → ∀(x : List a) → List a
∀(a : Type) → ∀(y : a) → ∀(xs : List a → List a) → ∀(x : List a) → List a
∀(a : Type) → ∀(x : List a) → List a
∀(a : Type) → ∀(x : a) → ∀(l : List a) → List a
{ map : ∀(a : Type) → ∀(b : Type) → ∀(k : a → b) → ∀(fa : List a → List a) → List b → List b }
{ fold : ∀(a : Type) → ∀(ts : List a → List a) → ∀(b : Type) → ∀(f : a → b → b) → ∀(z : b) → b }
∀(a : Type) → ∀(xs : List a → List a) → List a
∀(f : Type → Type) → ∀ ( functor : { map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b } ) → ∀(a : Type) → ∀(b : Type) → ∀(fa : f a) → ∀(val : b) → f b
∀(f : Type → Type) → Type
λ(f : Type → Type) → { map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b }
∀(f : Type → Type) → ∀ ( functor : { map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b } ) → ∀(a : Type) → ∀(b : Type) → ∀(val : a) → ∀(fb : f b) → f a
∀(f : Type → Type) → ∀ ( t : { fold : ∀(a : Type) → ∀(ts : f a) → ∀(b : Type) → ∀(f : a → b → b) → ∀(z : b) → b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , traverse : ∀(f : Type → Type) → ∀ ( applicative : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a } ) → ∀(a : Type) → ∀(b : Type) → (a → f b) → f@1 a → f (f@1 b) } ) → { map : ∀(a : Type) → ∀(b : Type) → (a → b) → f a → f b }
∀(f : Type → Type) → ∀ ( functor : { map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b } ) → { leftConst : ∀(a : Type) → ∀(b : Type) → ∀(val : a) → ∀(fb : f b) → f a , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , rightConst : ∀(a : Type) → ∀(b : Type) → ∀(fa : f a) → ∀(val : b) → f b , void : ∀(a : Type) → ∀(fa : f a) → f {} }
∀(f : Type → Type) → ∀ ( functor : { map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b } ) → ∀(a : Type) → ∀(fa : f a) → f {}
∀(f : Type → Type → Type) → Type
λ(f : Type → Type → Type) → { arr : ∀(a : Type) → ∀(b : Type) → (a → b) → f a b , compose : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → f b c → f a b → f a c , dimap : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(d : Type) → (a → b) → (c → d) → f b c → f a d , fanout : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → f a b → f a c → f a { _1 : b, _2 : c } , first : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → f a b → f { _1 : a, _2 : c } { _1 : b, _2 : c } , identity : ∀(a : Type) → f a a , lmap : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → (a → b) → f b c → f a c , rmap : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → (b → c) → f a b → f a c , second : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → f b c → f { _1 : a, _2 : b } { _1 : a, _2 : c } , split : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(d : Type) → f a b → f c d → f { _1 : a, _2 : c } { _1 : b, _2 : d } }
∀(g : Type → Type) → ∀(a : Type) → ∀(x : g a) → ∀(r : Type) → ∀(k : ∀(b : Type) → (b → a) → g b → r) → r
∀(g : Type → Type) → ∀(a : Type) → Type
λ(g : Type → Type) → λ(a : Type) → ∀(r : Type) → (∀(b : Type) → (b → a) → g b → r) → r
∀(f : Type → Type) → ∀ ( functor : { map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b } ) → ∀(a : Type) → ∀(lan : ∀(r : Type) → (∀(b : Type) → (b → a) → f b → r) → r) → f a
∀(g : Type → Type) → { map : ∀(a : Type) → ∀(b : Type) → ∀(h : a → b) → ∀(lan : ∀(r : Type) → (∀(b : Type) → (b → a) → g b → r) → r) → ∀(r : Type) → ∀(k : ∀(c : Type) → (c → b) → g c → r) → r }
∀(f : Type → Type) → ∀ ( comonad : { duplicate : ∀(a : Type) → f a → f (f a) , extend : ∀(a : Type) → ∀(b : Type) → ∀(f : f a → b) → f@1 a → f@1 b , extract : ∀(a : Type) → f a → a , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b } ) → ∀(a : Type) → ∀(x : f a) → ∀(r : Type) → ∀(k : ∀(b : Type) → (f b → a) → f b → r) → r
∀(f : Type → Type) → ∀(a : Type) → Type
λ(f : Type → Type) → λ(a : Type) → ∀(r : Type) → (∀(b : Type) → (f b → a) → f b → r) → r
∀(f : Type → Type) → ∀ ( comonad : { duplicate : ∀(a : Type) → f a → f (f a) , extend : ∀(a : Type) → ∀(b : Type) → ∀(f : f a → b) → f@1 a → f@1 b , extract : ∀(a : Type) → f a → a , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b } ) → ∀(a : Type) → ∀(lan : ∀(r : Type) → (∀(b : Type) → (f b → a) → f b → r) → r) → f a
∀(f : Type → Type) → { map : ∀(a : Type) → ∀(b : Type) → ∀(h : a → b) → ∀(lan : ∀(r : Type) → (∀(b : Type) → (f b → a) → f b → r) → r) → ∀(r : Type) → ∀(k : ∀(c : Type) → (f c → b) → f c → r) → r }
∀(f : Type → Type → Type) → Type
λ(f : Type → Type → Type) → { dimap : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(d : Type) → (a → b) → (c → d) → f b c → f a d , first : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → f a b → f { _1 : a, _2 : c } { _1 : b, _2 : c } , lmap : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → (a → b) → f b c → f a c , rmap : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → (b → c) → f a b → f a c , second : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → f b c → f { _1 : a, _2 : b } { _1 : a, _2 : c } }
∀(f : Type → Type) → ∀ ( t : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : f a) → ∀(k : a → f b) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a } ) → { map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b }
∀(f : Type → Type) → Type
λ(f : Type → Type) → { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : f a) → ∀(k : a → f b) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a }
∀(f : Type → Type) → ∀ ( t : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : f a) → ∀(k : a → f b) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a } ) → { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a }
∀(f : Type → Type) → ∀(pure : ∀(a : Type) → a → f a) → ∀(bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : f a) → ∀(k : a → f b) → f b) → { ap : ∀(a : Type) → ∀(b : Type) → ∀(k : f (a → b)) → ∀(fa : f a) → f b , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : f a) → ∀(k : a → f b) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(k : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a }
∀(f : Type → Type) → ∀ ( monad : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : f a) → ∀(k : a → f b) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a } ) → { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : f a) → ∀(k : a → f b) → f b , join : ∀(a : Type) → ∀(ffa : f (f a)) → f a , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a }
∀(m : Type → Type) → ∀ ( monad : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : m (a → b)) → ∀(fa : m a) → m b , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : m a) → ∀(k : a → m b) → m b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : m a) → m b , pure : ∀(a : Type) → a → m a } ) → { compose : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(g : b → m c) → ∀(f : a → m b) → ∀(x : a) → m c }
∀(m : Type → Type) → ∀(a : Type) → ∀(b : Type) → Type
λ(m : Type → Type) → λ(a : Type) → λ(b : Type) → a → m b
∀(m : Type → Type) → ∀ ( monad : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : m (a → b)) → ∀(fa : m a) → m b , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : m a) → ∀(k : a → m b) → m b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : m a) → m b , pure : ∀(a : Type) → a → m a } ) → { compose : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(g : b → m c) → ∀(f : a → m b) → ∀(x : a) → m c , identity : ∀(a : Type) → a → m a }
∀(r : Type) → ∀(m : Type → Type) → ∀ ( monad : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : m (a → b)) → ∀(fa : m a) → m b , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : m a) → ∀(k : a → m b) → m b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : m a) → m b , pure : ∀(a : Type) → a → m a } ) → { ap : ∀(a : Type) → ∀(b : Type) → ∀(k : r → m (a → b)) → ∀(fa : r → m a) → ∀(env : r) → m b , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : r → m a) → ∀(k : a → r → m b) → ∀(env : r) → m b , map : ∀(a : Type) → ∀(b : Type) → ∀(k : a → b) → ∀(reader : r → m a) → ∀(rr : r) → m b , pure : ∀(a : Type) → ∀(x : a) → ∀(env : r) → m a }
∀(r : Type) → ∀(m : Type → Type) → ∀(a : Type) → ∀(rPrime : Type) → ∀(f : rPrime → r) → ∀(reader : r → m a) → ∀(newR : rPrime) → m a
∀(r : Type) → ∀(m : Type → Type) → ∀ ( applicative : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : m (a → b)) → ∀(fa : m a) → m b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : m a) → m b , pure : ∀(a : Type) → a → m a } ) → { ap : ∀(a : Type) → ∀(b : Type) → ∀(k : r → m (a → b)) → ∀(fa : r → m a) → ∀(env : r) → m b , map : ∀(a : Type) → ∀(b : Type) → ∀(k : a → b) → ∀(reader : r → m a) → ∀(rr : r) → m b , pure : ∀(a : Type) → ∀(x : a) → ∀(env : r) → m a }
∀(r : Type) → ∀(m : Type → Type) → ∀(a : Type) → ∀(f : r → r) → ∀(reader : r → m a) → ∀(env : r) → m a
∀(r : Type) → ∀(m : Type → Type) → ∀(a : Type) → Type
λ(r : Type) → λ(m : Type → Type) → λ(a : Type) → r → m a
∀(r : Type) → ∀(m : Type → Type) → ∀ ( applicative : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : m (a → b)) → ∀(fa : m a) → m b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : m a) → m b , pure : ∀(a : Type) → a → m a } ) → ∀(a : Type) → ∀(f : r → a) → ∀(env : r) → m a
∀(r : Type) → ∀(m : Type → Type) → ∀ ( monad : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : m (a → b)) → ∀(fa : m a) → m b , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : m a) → ∀(k : a → m b) → m b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : m a) → m b , pure : ∀(a : Type) → a → m a } ) → { ap : ∀(a : Type) → ∀(b : Type) → ∀(k : r → m (a → b)) → ∀(fa : r → m a) → ∀(env : r) → m b , ask : ∀(env : r) → m r , asks : ∀(a : Type) → ∀(f : r → a) → ∀(env : r) → m a , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : r → m a) → ∀(k : a → r → m b) → ∀(env : r) → m b , lift : ∀(a : Type) → ∀(ma : m a) → ∀(env : r) → m a , local : ∀(a : Type) → ∀(f : r → r) → ∀(reader : r → m a) → ∀(env : r) → m a , map : ∀(a : Type) → ∀(b : Type) → ∀(k : a → b) → ∀(reader : r → m a) → ∀(rr : r) → m b , pure : ∀(a : Type) → ∀(x : a) → ∀(env : r) → m a }
∀(r : Type) → ∀(m : Type → Type) → ∀ ( applicative : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : m (a → b)) → ∀(fa : m a) → m b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : m a) → m b , pure : ∀(a : Type) → a → m a } ) → ∀(env : r) → m r
∀(r : Type) → ∀(m : Type → Type) → ∀ ( functor : { map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : m a) → m b } ) → { map : ∀(a : Type) → ∀(b : Type) → ∀(k : a → b) → ∀(reader : r → m a) → ∀(rr : r) → m b }
∀(r : Type) → { lift : ∀(m : Type → Type) → ∀ ( monad : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : m (a → b)) → ∀(fa : m a) → m b , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : m a) → ∀(k : a → m b) → m b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : m a) → m b , pure : ∀(a : Type) → a → m a } ) → ∀(a : Type) → ∀(ma : m a) → ∀(env : r) → m a }
∀(t : Type → Type) → Type
λ(t : Type → Type) → { fold : ∀(a : Type) → ∀(ts : t a) → ∀(b : Type) → ∀(f : a → b → b) → ∀(z : b) → b }
∀(m : Type) → ∀(monoid : { op : ∀(x : m) → ∀(y : m) → m, unit : m }) → ∀(t : Type → Type) → ∀ ( foldable : { fold : ∀(a : Type) → ∀(ts : t a) → ∀(b : Type) → ∀(f : a → b → b) → ∀(z : b) → b } ) → ∀(a : Type) → ∀(f : a → m) → ∀(ts : t a) → m
∀(a : Type) → ∀(m : Type → Type) → ∀ ( monad : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : m (a → b)) → ∀(fa : m a) → m b , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : m a) → ∀(k : a → m b) → m b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : m a) → m b , pure : ∀(a : Type) → a → m a } ) → { ap : ∀(a : Type) → ∀(b : Type) → ∀(k : m < Left : a@1 | Right : a → b >) → ∀(fa : m < Left : a@1 | Right : a >) → m < Left : a@1 | Right : b > , bind : ∀(b : Type) → ∀(c : Type) → ∀(fa : m < Left : a | Right : b >) → ∀(k : b → m < Left : a | Right : c >) → m < Left : a | Right : c > , map : ∀(a : Type) → ∀(b : Type) → ∀(k : a → b) → ∀(fa : m < Left : a@1 | Right : a >) → m < Left : a@1 | Right : b > , pure : ∀(a : Type) → ∀(x : a) → m < Left : a@1 | Right : a > }
∀(a : Type) → ∀(semi : { op : ∀(x : a) → ∀(y : a) → a }) → ∀(m : Type → Type) → ∀ ( applicative : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : m (a → b)) → ∀(fa : m a) → m b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : m a) → m b , pure : ∀(a : Type) → a → m a } ) → { ap : ∀(a : Type) → ∀(b : Type) → ∀(k : m < Left : a@1 | Right : a → b >) → ∀(fa : m < Left : a@1 | Right : a >) → m < Left : a@1 | Right : b > , map : ∀(a : Type) → ∀(b : Type) → ∀(k : a → b) → ∀(fa : m < Left : a@1 | Right : a >) → m < Left : a@1 | Right : b > , pure : ∀(a : Type) → ∀(x : a) → m < Left : a@1 | Right : a > }
∀(a : Type) → ∀(m : Type → Type) → ∀ ( applicative : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : m (a → b)) → ∀(fa : m a) → m b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : m a) → m b , pure : ∀(a : Type) → a → m a } ) → { ap : ∀(a : Type) → ∀(b : Type) → ∀(k : m < Left : a@1 | Right : a → b >) → ∀(fa : m < Left : a@1 | Right : a >) → m < Left : a@1 | Right : b > , map : ∀(a : Type) → ∀(b : Type) → ∀(k : a → b) → ∀(fa : m < Left : a@1 | Right : a >) → m < Left : a@1 | Right : b > , pure : ∀(a : Type) → ∀(x : a) → m < Left : a@1 | Right : a > }
∀(a : Type) → ∀(m : Type → Type) → ∀(b : Type) → Type
λ(a : Type) → λ(m : Type → Type) → λ(b : Type) → m < Left : a | Right : b >
∀(a : Type) → ∀(m : Type → Type) → ∀ ( functor : { map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : m a) → m b } ) → { map : ∀(a : Type) → ∀(b : Type) → ∀(k : a → b) → ∀(fa : m < Left : a@1 | Right : a >) → m < Left : a@1 | Right : b > }
∀(a : Type) → { lift : ∀(m : Type → Type) → ∀ ( monad : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : m (a → b)) → ∀(fa : m a) → m b , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : m a) → ∀(k : a → m b) → m b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : m a) → m b , pure : ∀(a : Type) → a → m a } ) → ∀(b : Type) → ∀(ma : m b) → m < Left : a | Right : b > }
∀(f : Type → Type → Type) → Type
λ(f : Type → Type → Type) → { compose : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → f b c → f a b → f a c }
{ compose : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(f : b → c) → ∀(g : a → b) → ∀(x : a) → c }
{ dimap : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(d : Type) → ∀(f : a → b) → ∀(g : c → d) → ∀(fn : b → c) → ∀(x : a) → d , first : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(f : a → b) → ∀(p : { _1 : a, _2 : c }) → { _1 : b, _2 : c } , lmap : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(fn : a → b) → ∀(fn : b → c) → ∀(x : a) → c , rmap : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(g : b → c) → ∀(fn : a → b) → ∀(x : a) → c , second : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(f : b → c) → ∀(p : { _1 : a, _2 : b }) → { _1 : a, _2 : c } }
∀(a : Type) → ∀(b : Type) → Type
λ(a : Type) → λ(b : Type) → a → b
{ arr : ∀(a : Type) → ∀(b : Type) → ∀(x : a → b) → a → b , compose : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(f : b → c) → ∀(g : a → b) → ∀(x : a) → c , dimap : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(d : Type) → ∀(f : a → b) → ∀(g : c → d) → ∀(fn : b → c) → ∀(x : a) → d , fanout : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(f : a → b) → ∀(g : a → c) → ∀(x : a) → { _1 : b, _2 : c } , first : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(f : a → b) → ∀(p : { _1 : a, _2 : c }) → { _1 : b, _2 : c } , identity : ∀(a : Type) → ∀(x : a) → a , lmap : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(fn : a → b) → ∀(fn : b → c) → ∀(x : a) → c , rmap : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(g : b → c) → ∀(fn : a → b) → ∀(x : a) → c , second : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(f : b → c) → ∀(p : { _1 : a, _2 : b }) → { _1 : a, _2 : c } , split : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(d : Type) → ∀(f : a → b) → ∀(g : c → d) → ∀(p : { _1 : a, _2 : c }) → { _1 : b, _2 : d } }
{ dimap : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(d : Type) → ∀(f : a → b) → ∀(g : c → d) → ∀(fn : b → c) → ∀(x : a) → d , lmap : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(fn : a → b) → ∀(fn : b → c) → ∀(x : a) → c , rmap : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(g : b → c) → ∀(fn : a → b) → ∀(x : a) → c }
{ compose : ∀(a : Type) → ∀(b : Type) → ∀(c : Type) → ∀(f : b → c) → ∀(g : a → b) → ∀(x : a) → c , identity : ∀(a : Type) → ∀(x : a) → a }
{ ap : ∀(a : Type) → ∀(b : Type) → ∀(g : Optional (a → b)) → ∀(fa : Optional a) → Optional b , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : Optional a) → ∀(k : a → Optional b) → Optional b , map : ∀(a : Type) → ∀(b : Type) → ∀(f : a → b) → ∀(o : Optional a) → Optional b , pure : ∀(a : Type) → ∀(x : a) → Optional a }
{ ap : ∀(a : Type) → ∀(b : Type) → ∀(g : Optional (a → b)) → ∀(fa : Optional a) → Optional b , map : ∀(a : Type) → ∀(b : Type) → ∀(f : a → b) → ∀(o : Optional a) → Optional b , pure : ∀(a : Type) → ∀(x : a) → Optional a }
{ fold : ∀(a : Type) → ∀(ts : Optional a) → ∀(b : Type) → ∀(f : a → b → b) → ∀(z : b) → b , map : ∀(a : Type) → ∀(b : Type) → ∀(f : a → b) → ∀(o : Optional a) → Optional b , traverse : ∀(f : Type → Type) → ∀ ( applicative : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a } ) → ∀(a : Type) → ∀(b : Type) → ∀(g : a → f b) → ∀(ts : Optional a) → f (Optional b) }
{ map : ∀(a : Type) → ∀(b : Type) → ∀(f : a → b) → ∀(o : Optional a) → Optional b }
{ fold : ∀(a : Type) → ∀(ts : Optional a) → ∀(b : Type) → ∀(f : a → b → b) → ∀(z : b) → b }
∀(a : Type) → ∀(b : Type) → Type
λ(a : Type) → λ(b : Type) → { _1 : a, _2 : b }
∀(a : Type) → { duplicate : ∀(a : Type) → ∀(tup : { _1 : a@1, _2 : a }) → { _1 : a@1, _2 : { _1 : a@1, _2 : a } } , extend : ∀(b : Type) → ∀(c : Type) → ∀(f : { _1 : a, _2 : b } → c) → ∀(tup : { _1 : a, _2 : b }) → { _1 : a, _2 : c } , extract : ∀(b : Type) → ∀(tup : { _1 : a, _2 : b }) → b , map : ∀(a : Type) → ∀(b : Type) → ∀(f : a → b) → ∀(tup : { _1 : a@1, _2 : a }) → { _1 : a@1, _2 : b } }
∀(a : Type) → ∀ ( comonad : { duplicate : ∀(a : Type) → { _1 : a@1, _2 : a } → { _1 : a@1, _2 : { _1 : a@1, _2 : a } } , extend : ∀(a : Type) → ∀(b : Type) → ∀(f : { _1 : a@1, _2 : a } → b) → { _1 : a@1, _2 : a } → { _1 : a@1, _2 : b } , extract : ∀(a : Type) → { _1 : a@1, _2 : a } → a , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : { _1 : a@1, _2 : a }) → { _1 : a@1, _2 : b } } ) → { map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : { _1 : a@1, _2 : a }) → { _1 : a@1, _2 : b } }
∀(m : Type → Type) → { ap : ∀(a : Type) → ∀(b : Type) → ∀(f : ∀(b : Type) → ((a → b@1) → m b) → m b) → ∀(g : ∀(b : Type) → (a → m b) → m b) → ∀(c : Type) → ∀(k : b → m c) → m c , bind : ∀(a : Type) → ∀(b : Type) → ∀(codensity : ∀(b : Type) → (a → m b) → m b) → ∀(k : a → ∀(b : Type) → (b@1 → m b) → m b) → ∀(c : Type) → ∀(l : b → m c) → m c , map : ∀(a : Type) → ∀(b : Type) → ∀(h : a → b) → ∀(ran : ∀(b : Type) → (a → m b) → m b) → ∀(c : Type) → ∀(k : b → m c) → m c , pure : ∀(a : Type) → ∀(x : a) → ∀(b : Type) → ∀(k : a → m b) → m b }
∀(m : Type → Type) → { ap : ∀(a : Type) → ∀(b : Type) → ∀(f : ∀(b : Type) → ((a → b@1) → m b) → m b) → ∀(g : ∀(b : Type) → (a → m b) → m b) → ∀(c : Type) → ∀(k : b → m c) → m c , map : ∀(a : Type) → ∀(b : Type) → ∀(h : a → b) → ∀(ran : ∀(b : Type) → (a → m b) → m b) → ∀(c : Type) → ∀(k : b → m c) → m c , pure : ∀(a : Type) → ∀(x : a) → ∀(b : Type) → ∀(k : a → m b) → m b }
∀(f : Type → Type) → ∀ ( monad : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : f (a → b)) → ∀(fa : f a) → f b , bind : ∀(a : Type) → ∀(b : Type) → ∀(fa : f a) → ∀(k : a → f b) → f b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : f a) → f b , pure : ∀(a : Type) → a → f a } ) → ∀(a : Type) → ∀(x : f a) → ∀(b : Type) → ∀(k : a → f b) → f b
∀(m : Type → Type) → ∀(a : Type) → Type
λ(m : Type → Type) → λ(a : Type) → ∀(b : Type) → (a → m b) → m b
∀(m : Type → Type) → ∀ ( applicative : { ap : ∀(a : Type) → ∀(b : Type) → ∀(g : m (a → b)) → ∀(fa : m a) → m b , map : ∀(a : Type) → ∀(b : Type) → ∀(g : a → b) → ∀(fa : m a) → m b , pure : ∀(a : Type) → a → m a } ) → ∀(a : Type) → ∀(ran : ∀(b : Type) → (a → m b) → m b) → m a
∀(m : Type → Type) → { map : ∀(a : Type) → ∀(b : Type) → ∀(h : a → b) → ∀(ran : ∀(b : Type) → (a → m b) → m b) → ∀(c : Type) → ∀(k : b → m c) → m c }