{-# OPTIONS --without-K #-}
module Category.Applicative.NP where
open import Type hiding (★)
open import Data.Vec using (Vec; []; _∷_)
open import Data.Nat
open import Category.Applicative public hiding (module RawApplicative)
module RawApplicative {f} {F : ★ f → ★ f}
(app : RawApplicative F) where
open Category.Applicative.RawApplicative app public
replicateM : ∀ {n A} → F A → F (Vec A n)
replicateM {zero} _ = pure []
replicateM {suc n} x = pure _∷_ ⊛ x ⊛ replicateM x