Modules

categorical-crypto

  • Prelude

CategoricalCrypto

  • CategoricalCrypto
  • Abstract
  • Abstract2
  • Abstract2.Equivalence
  • Abstract2.Morphism
  • Abstract2.OAPEmulation
  • Abstract2.WideSubcategory
  • Channel.Category
  • Channel.Core
  • Channel.Selection
  • Examples.Basic
  • Examples.Commitment
  • Examples.RelSetup
  • Examples.Signatures
  • FamilyCategory
  • Machine.Constraints
  • Machine.Core
  • MachineAxioms
  • RandomOracle
  • RandomOracle2
  • SFunM
  • Standard
  • Standard2
  • Standard2.Morphism
  • StandardTV
  • UCSetup
  • UCSetup.Morphism
  • VanishingTV

Categories

  • Actegory
  • Actegory.Underlying
  • Category.EquivClosureHelper
  • Coherence.Monoidal
  • Coherence.Monoidal.Compare
  • Coherence.Monoidal.Diagram
  • Coherence.Monoidal.Frontend
  • Coherence.Monoidal.Frontend.Core
  • Coherence.Monoidal.Frontend.Sigma
  • Coherence.Monoidal.MacLane
  • Coherence.Monoidal.Normalize
  • Coherence.Monoidal.Reflect
  • Coherence.Monoidal.Sigma
  • Coherence.Monoidal.Test.Frontend
  • Coherence.Monoidal.Test.InterchangeStress
  • Coherence.Monoidal.Test.Limitations
  • Coherence.Monoidal.Test.SigmaFrontend
  • Coherence.Monoidal.WireCoherence
  • CoherenceIsos
  • Diagram.Coend.Ext.Setoids
  • Discrete
  • FreeMonoidal
  • FreeStrictMonoidal
  • Functor.Monoidal.CurriedTensor
  • Functor.Monoidal.CurriedTensor.Properties
  • Functor.Monoidal.Properties.Ext
  • Functor.Presheaf.Morphism
  • GradedKleisli
  • GradedKleisli.Functorial
  • GradedKleisli.Functorial.Category
  • GradedKleisli.Regrade
  • KernelCongruence
  • KernelCongruence.Reindex
  • LocallyGraded
  • LocallyGraded.FreeActegory
  • LocallyGraded.FreeActegory.Kleisli
  • LocallyGraded.Kleisli
  • Monad.Graded.Ext
  • Monad.Graded.Morphism
  • Monad.Graded.Pullback
  • Monad.Graded.Uncurried
  • Morphism.Reasoning.Ext
  • NaturalTransformationHelper
  • Properties

Class

  • Monad.Ext

Data

  • List.Properties.Ext
  • Maybe.Ext
  • Nat.Poly

LibExt

  • LibExt
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
{-# OPTIONS --cubical-compatible #-}
module Class.Applicative.Instances where
 
open import Class.Prelude
open import Class.Functor.Core
open import Class.Functor.Instances
open import Class.Applicative.Core
 
instance
Applicative-Maybe : Applicative Maybe
Applicative-Maybe = λ where
.pure → just
._<*>_ → maybe fmap (const nothing)
 
Applicative₀-Maybe : Applicative₀ Maybe
Applicative₀-Maybe .ε₀ = nothing
 
Alternative-Maybe : Alternative Maybe
Alternative-Maybe ._<|>_ = May._<∣>_
where import Data.Maybe as May
 
Applicative-List : Applicative List
Applicative-List = λ where
.pure → [_]
._<*>_ → flip $ concatMap ∘ _<&>_
 
Applicative₀-List : Applicative₀ List
Applicative₀-List .ε₀ = []
 
Alternative-List : Alternative List
Alternative-List ._<|>_ = _++_
 
Applicative-List⁺ : Applicative List⁺
Applicative-List⁺ = λ where
.pure → L⁺.[_]
._<*>_ → flip $ L⁺.concatMap ∘ _<&>_
where import Data.List.NonEmpty as L⁺
 
Applicative-Vec : ∀ {n} → Applicative (flip Vec n)
Applicative-Vec = λ where
.pure → V.replicate _
._<*>_ → V._⊛_
where import Data.Vec as V
 
 
Applicative₀-Vec : Applicative₀ (flip Vec 0)
Applicative₀-Vec .ε₀ = []
 
-- Applicative-∃Vec : Applicative (∃ ∘ Vec)
-- Applicative-∃Vec = λ where
-- .pure x → 1 , pure x
-- ._<*>_ (n , xs) (m , ys) →
-- {! (n ⊔ m) , zipWith _$_ xs ys (+ zipWith-⊔ lemma) !}
 
private module M where
open import Reflection.TCM.Syntax public
open import Reflection.TCM public
 
Alternative-TC : Alternative TC
Alternative-TC = record {M}
 
Applicative-TC : Applicative TC
Applicative-TC = record {M}