{-# 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