short-vec-0.1.0.0: src/Data/Vec/Short/Explicit.hs
-- Copyright 2021 Google LLC
--
-- Licensed under the Apache License, Version 2.0 (the "License");
-- you may not use this file except in compliance with the License.
-- You may obtain a copy of the License at
--
-- http://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS,
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- See the License for the specific language governing permissions and
-- limitations under the License.
-- | An API for "Data.Vec.Short" with 'Data.SInt.SInt's for all size parameters.
--
-- In contrast to "Data.Vec.Short", this module provides an API where runtime
-- values of bound parameters are provided explicitly by 'Data.SInt.SInt's,
-- which can be more intuitive than passing implicitly via
-- 'GHC.TypeLits.KnownNat', and can avoid some runtime
-- 'Numeric.Natural.Natural'-to-'Int' conversions and bounds checks resulting
-- from @KnownNat@, at the cost of making some code more tedious where the
-- bounds "should" be obvious.
module Data.Vec.Short.Explicit
( Vec
-- * Core constructors\/generators
-- ** 'Data.Fin.Int.Fin'-based constructors
, mkVec, mkVec'
, backpermute
-- ** List-based constructors
, fromList, withVec
-- ** Arity-based constructors
, vec1, vec2, vec3, vec4, vec6, vec8
-- ** 'Enum'-based constructors
, viota
-- * Core operators
-- ** Size\/length
, svSize, vSize
-- ** Indexing
, (!), indexK
-- ** Add/remove element
, insert, remove, overIx
-- * List-like operators
-- ** Constructor views
-- *** The nil view
, nil
-- ** Operator views
-- *** The append view
, (++), split
-- *** The concat view
, concat, concatMap, reshape
-- *** The reverse view
, rev, rot
-- *** The transposition view
, vtranspose
-- ** Misc list-like operators
, iterate, iterate'
, vsort, vsortBy, vsortOn
, vfindIndex
-- * Additional zips, maps, folds, etc.
, map', imap', withPos
, cross
, vscanl
, liftA2Lazy
) where
import Prelude hiding (concatMap, concat, iterate, (++))
import Data.Vec.Short.Internal