packages feed

container-builder (empty) → 0.1

raw patch · 5 files changed

+852/−0 lines, 5 filesdep +basedep +vectorsetup-changed

Dependencies added: base, vector

Files

+ LICENSE view
@@ -0,0 +1,30 @@+Copyright Andrew Martin (c) 2016++All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++    * Redistributions of source code must retain the above copyright+      notice, this list of conditions and the following disclaimer.++    * Redistributions in binary form must reproduce the above+      copyright notice, this list of conditions and the following+      disclaimer in the documentation and/or other materials provided+      with the distribution.++    * Neither the name of Andrew Martin nor the names of other+      contributors may be used to endorse or promote products derived+      from this software without specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ container-builder.cabal view
@@ -0,0 +1,27 @@+name:                container-builder+version:             0.1+synopsis:            Functions for building containers from a known number of elements+description:         Please see README.md+homepage:            https://github.com/andrewthad/container-builder#readme+license:             BSD3+license-file:        LICENSE+author:              Andrew Martin+maintainer:          andrew.thaddeus@gmail.com+copyright:           2016 Andrew Martin+category:            Web+build-type:          Simple+cabal-version:       >=1.10++library+  hs-source-dirs:      src+  exposed-modules:+    Data.List.From+    Data.Vector.From+  build-depends:       +      base >= 4.7 && < 5+    , vector+  default-language:    Haskell2010++source-repository head+  type:     git+  location: https://github.com/andrewthad/container-builder
+ src/Data/List/From.hs view
@@ -0,0 +1,98 @@+module Data.List.From where++from1 :: a -> [a]+from1 _1 = [_1]++from2 :: a -> a -> [a]+from2 _1 _2 = [_1,_2]++from3 :: a -> a -> a -> [a]+from3 _1 _2 _3 = [_1,_2,_3]++from4 :: a -> a -> a -> a -> [a]+from4 _1 _2 _3 _4 = [_1,_2,_3,_4]++from5 :: a -> a -> a -> a -> a -> [a]+from5 _1 _2 _3 _4 _5 = [_1,_2,_3,_4,_5]++from6 :: a -> a -> a -> a -> a -> a -> [a]+from6 _1 _2 _3 _4 _5 _6 = [_1,_2,_3,_4,_5,_6]++from7 :: a -> a -> a -> a -> a -> a -> a -> [a]+from7 _1 _2 _3 _4 _5 _6 _7 = [_1,_2,_3,_4,_5,_6,_7]++from8 :: a -> a -> a -> a -> a -> a -> a -> a -> [a]+from8 _1 _2 _3 _4 _5 _6 _7 _8 = [_1,_2,_3,_4,_5,_6,_7,_8]++from9 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> [a]+from9 _1 _2 _3 _4 _5 _6 _7 _8 _9 = [_1,_2,_3,_4,_5,_6,_7,_8,_9]++from10 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> [a]+from10 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 = [_1,_2,_3,_4,_5,_6,_7,_8,_9,_10]++from11 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> [a]+from11 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 = [_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11]++from12 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> [a]+from12 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 = [_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12]++from13 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> [a]+from13 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 = [_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13]++from14 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> [a]+from14 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 = [_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14]++from15 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> [a]+from15 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 = [_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15]++from16 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> [a]+from16 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 = [_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16]++from17 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> [a]+from17 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 = [_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17]++from18 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> [a]+from18 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 = [_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18]++from19 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> [a]+from19 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 = [_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19]++from20 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> [a]+from20 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 = [_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20]++from21 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> [a]+from21 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 = [_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21]++from22 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> [a]+from22 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 = [_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22]++from23 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> [a]+from23 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 _23 = [_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23]++from24 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> [a]+from24 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 _23 _24 = [_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24]++from25 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> [a]+from25 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 _23 _24 _25 = [_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25]++from26 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> [a]+from26 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 _23 _24 _25 _26 = [_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26]++from27 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> [a]+from27 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 _23 _24 _25 _26 _27 = [_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27]++from28 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> [a]+from28 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 _23 _24 _25 _26 _27 _28 = [_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28]++from29 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> [a]+from29 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 _23 _24 _25 _26 _27 _28 _29 = [_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29]++from30 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> [a]+from30 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 _23 _24 _25 _26 _27 _28 _29 _30 = [_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30]++from31 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> [a]+from31 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 _23 _24 _25 _26 _27 _28 _29 _30 _31 = [_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31]++from32 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> [a]+from32 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 _23 _24 _25 _26 _27 _28 _29 _30 _31 _32 = [_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13,_14,_15,_16,_17,_18,_19,_20,_21,_22,_23,_24,_25,_26,_27,_28,_29,_30,_31,_32]+
+ src/Data/Vector/From.hs view
@@ -0,0 +1,695 @@+module Data.Vector.From where++import Prelude (($))+import Data.Vector+import Data.Vector.Mutable+import Control.Monad.ST++from1 :: a -> Vector a+from1 _0 = runST $ do+  v <- unsafeNew 1+  unsafeWrite v 0 _0+  unsafeFreeze v++from2 :: a -> a -> Vector a+from2 _0 _1 = runST $ do+  v <- unsafeNew 2+  unsafeWrite v 0 _0+  unsafeWrite v 1 _1+  unsafeFreeze v++from3 :: a -> a -> a -> Vector a+from3 _0 _1 _2 = runST $ do+  v <- unsafeNew 3+  unsafeWrite v 0 _0+  unsafeWrite v 1 _1+  unsafeWrite v 2 _2+  unsafeFreeze v++from4 :: a -> a -> a -> a -> Vector a+from4 _0 _1 _2 _3 = runST $ do+  v <- unsafeNew 4+  unsafeWrite v 0 _0+  unsafeWrite v 1 _1+  unsafeWrite v 2 _2+  unsafeWrite v 3 _3+  unsafeFreeze v++from5 :: a -> a -> a -> a -> a -> Vector a+from5 _0 _1 _2 _3 _4 = runST $ do+  v <- unsafeNew 5+  unsafeWrite v 0 _0+  unsafeWrite v 1 _1+  unsafeWrite v 2 _2+  unsafeWrite v 3 _3+  unsafeWrite v 4 _4+  unsafeFreeze v++from6 :: a -> a -> a -> a -> a -> a -> Vector a+from6 _0 _1 _2 _3 _4 _5 = runST $ do+  v <- unsafeNew 6+  unsafeWrite v 0 _0+  unsafeWrite v 1 _1+  unsafeWrite v 2 _2+  unsafeWrite v 3 _3+  unsafeWrite v 4 _4+  unsafeWrite v 5 _5+  unsafeFreeze v++from7 :: a -> a -> a -> a -> a -> a -> a -> Vector a+from7 _0 _1 _2 _3 _4 _5 _6 = runST $ do+  v <- unsafeNew 7+  unsafeWrite v 0 _0+  unsafeWrite v 1 _1+  unsafeWrite v 2 _2+  unsafeWrite v 3 _3+  unsafeWrite v 4 _4+  unsafeWrite v 5 _5+  unsafeWrite v 6 _6+  unsafeFreeze v++from8 :: a -> a -> a -> a -> a -> a -> a -> a -> Vector a+from8 _0 _1 _2 _3 _4 _5 _6 _7 = runST $ do+  v <- unsafeNew 8+  unsafeWrite v 0 _0+  unsafeWrite v 1 _1+  unsafeWrite v 2 _2+  unsafeWrite v 3 _3+  unsafeWrite v 4 _4+  unsafeWrite v 5 _5+  unsafeWrite v 6 _6+  unsafeWrite v 7 _7+  unsafeFreeze v++from9 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> Vector a+from9 _0 _1 _2 _3 _4 _5 _6 _7 _8 = runST $ do+  v <- unsafeNew 9+  unsafeWrite v 0 _0+  unsafeWrite v 1 _1+  unsafeWrite v 2 _2+  unsafeWrite v 3 _3+  unsafeWrite v 4 _4+  unsafeWrite v 5 _5+  unsafeWrite v 6 _6+  unsafeWrite v 7 _7+  unsafeWrite v 8 _8+  unsafeFreeze v++from10 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> Vector a+from10 _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 = runST $ do+  v <- unsafeNew 10+  unsafeWrite v 0 _0+  unsafeWrite v 1 _1+  unsafeWrite v 2 _2+  unsafeWrite v 3 _3+  unsafeWrite v 4 _4+  unsafeWrite v 5 _5+  unsafeWrite v 6 _6+  unsafeWrite v 7 _7+  unsafeWrite v 8 _8+  unsafeWrite v 9 _9+  unsafeFreeze v++from11 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> Vector a+from11 _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 = runST $ do+  v <- unsafeNew 11+  unsafeWrite v 0 _0+  unsafeWrite v 1 _1+  unsafeWrite v 2 _2+  unsafeWrite v 3 _3+  unsafeWrite v 4 _4+  unsafeWrite v 5 _5+  unsafeWrite v 6 _6+  unsafeWrite v 7 _7+  unsafeWrite v 8 _8+  unsafeWrite v 9 _9+  unsafeWrite v 10 _10+  unsafeFreeze v++from12 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> Vector a+from12 _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 = runST $ do+  v <- unsafeNew 12+  unsafeWrite v 0 _0+  unsafeWrite v 1 _1+  unsafeWrite v 2 _2+  unsafeWrite v 3 _3+  unsafeWrite v 4 _4+  unsafeWrite v 5 _5+  unsafeWrite v 6 _6+  unsafeWrite v 7 _7+  unsafeWrite v 8 _8+  unsafeWrite v 9 _9+  unsafeWrite v 10 _10+  unsafeWrite v 11 _11+  unsafeFreeze v++from13 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> Vector a+from13 _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 = runST $ do+  v <- unsafeNew 13+  unsafeWrite v 0 _0+  unsafeWrite v 1 _1+  unsafeWrite v 2 _2+  unsafeWrite v 3 _3+  unsafeWrite v 4 _4+  unsafeWrite v 5 _5+  unsafeWrite v 6 _6+  unsafeWrite v 7 _7+  unsafeWrite v 8 _8+  unsafeWrite v 9 _9+  unsafeWrite v 10 _10+  unsafeWrite v 11 _11+  unsafeWrite v 12 _12+  unsafeFreeze v++from14 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> Vector a+from14 _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 = runST $ do+  v <- unsafeNew 14+  unsafeWrite v 0 _0+  unsafeWrite v 1 _1+  unsafeWrite v 2 _2+  unsafeWrite v 3 _3+  unsafeWrite v 4 _4+  unsafeWrite v 5 _5+  unsafeWrite v 6 _6+  unsafeWrite v 7 _7+  unsafeWrite v 8 _8+  unsafeWrite v 9 _9+  unsafeWrite v 10 _10+  unsafeWrite v 11 _11+  unsafeWrite v 12 _12+  unsafeWrite v 13 _13+  unsafeFreeze v++from15 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> Vector a+from15 _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 = runST $ do+  v <- unsafeNew 15+  unsafeWrite v 0 _0+  unsafeWrite v 1 _1+  unsafeWrite v 2 _2+  unsafeWrite v 3 _3+  unsafeWrite v 4 _4+  unsafeWrite v 5 _5+  unsafeWrite v 6 _6+  unsafeWrite v 7 _7+  unsafeWrite v 8 _8+  unsafeWrite v 9 _9+  unsafeWrite v 10 _10+  unsafeWrite v 11 _11+  unsafeWrite v 12 _12+  unsafeWrite v 13 _13+  unsafeWrite v 14 _14+  unsafeFreeze v++from16 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> Vector a+from16 _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 = runST $ do+  v <- unsafeNew 16+  unsafeWrite v 0 _0+  unsafeWrite v 1 _1+  unsafeWrite v 2 _2+  unsafeWrite v 3 _3+  unsafeWrite v 4 _4+  unsafeWrite v 5 _5+  unsafeWrite v 6 _6+  unsafeWrite v 7 _7+  unsafeWrite v 8 _8+  unsafeWrite v 9 _9+  unsafeWrite v 10 _10+  unsafeWrite v 11 _11+  unsafeWrite v 12 _12+  unsafeWrite v 13 _13+  unsafeWrite v 14 _14+  unsafeWrite v 15 _15+  unsafeFreeze v++from17 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> Vector a+from17 _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 = runST $ do+  v <- unsafeNew 17+  unsafeWrite v 0 _0+  unsafeWrite v 1 _1+  unsafeWrite v 2 _2+  unsafeWrite v 3 _3+  unsafeWrite v 4 _4+  unsafeWrite v 5 _5+  unsafeWrite v 6 _6+  unsafeWrite v 7 _7+  unsafeWrite v 8 _8+  unsafeWrite v 9 _9+  unsafeWrite v 10 _10+  unsafeWrite v 11 _11+  unsafeWrite v 12 _12+  unsafeWrite v 13 _13+  unsafeWrite v 14 _14+  unsafeWrite v 15 _15+  unsafeWrite v 16 _16+  unsafeFreeze v++from18 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> Vector a+from18 _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 = runST $ do+  v <- unsafeNew 18+  unsafeWrite v 0 _0+  unsafeWrite v 1 _1+  unsafeWrite v 2 _2+  unsafeWrite v 3 _3+  unsafeWrite v 4 _4+  unsafeWrite v 5 _5+  unsafeWrite v 6 _6+  unsafeWrite v 7 _7+  unsafeWrite v 8 _8+  unsafeWrite v 9 _9+  unsafeWrite v 10 _10+  unsafeWrite v 11 _11+  unsafeWrite v 12 _12+  unsafeWrite v 13 _13+  unsafeWrite v 14 _14+  unsafeWrite v 15 _15+  unsafeWrite v 16 _16+  unsafeWrite v 17 _17+  unsafeFreeze v++from19 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> Vector a+from19 _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 = runST $ do+  v <- unsafeNew 19+  unsafeWrite v 0 _0+  unsafeWrite v 1 _1+  unsafeWrite v 2 _2+  unsafeWrite v 3 _3+  unsafeWrite v 4 _4+  unsafeWrite v 5 _5+  unsafeWrite v 6 _6+  unsafeWrite v 7 _7+  unsafeWrite v 8 _8+  unsafeWrite v 9 _9+  unsafeWrite v 10 _10+  unsafeWrite v 11 _11+  unsafeWrite v 12 _12+  unsafeWrite v 13 _13+  unsafeWrite v 14 _14+  unsafeWrite v 15 _15+  unsafeWrite v 16 _16+  unsafeWrite v 17 _17+  unsafeWrite v 18 _18+  unsafeFreeze v++from20 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> Vector a+from20 _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 = runST $ do+  v <- unsafeNew 20+  unsafeWrite v 0 _0+  unsafeWrite v 1 _1+  unsafeWrite v 2 _2+  unsafeWrite v 3 _3+  unsafeWrite v 4 _4+  unsafeWrite v 5 _5+  unsafeWrite v 6 _6+  unsafeWrite v 7 _7+  unsafeWrite v 8 _8+  unsafeWrite v 9 _9+  unsafeWrite v 10 _10+  unsafeWrite v 11 _11+  unsafeWrite v 12 _12+  unsafeWrite v 13 _13+  unsafeWrite v 14 _14+  unsafeWrite v 15 _15+  unsafeWrite v 16 _16+  unsafeWrite v 17 _17+  unsafeWrite v 18 _18+  unsafeWrite v 19 _19+  unsafeFreeze v++from21 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> Vector a+from21 _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 = runST $ do+  v <- unsafeNew 21+  unsafeWrite v 0 _0+  unsafeWrite v 1 _1+  unsafeWrite v 2 _2+  unsafeWrite v 3 _3+  unsafeWrite v 4 _4+  unsafeWrite v 5 _5+  unsafeWrite v 6 _6+  unsafeWrite v 7 _7+  unsafeWrite v 8 _8+  unsafeWrite v 9 _9+  unsafeWrite v 10 _10+  unsafeWrite v 11 _11+  unsafeWrite v 12 _12+  unsafeWrite v 13 _13+  unsafeWrite v 14 _14+  unsafeWrite v 15 _15+  unsafeWrite v 16 _16+  unsafeWrite v 17 _17+  unsafeWrite v 18 _18+  unsafeWrite v 19 _19+  unsafeWrite v 20 _20+  unsafeFreeze v++from22 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> Vector a+from22 _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 = runST $ do+  v <- unsafeNew 22+  unsafeWrite v 0 _0+  unsafeWrite v 1 _1+  unsafeWrite v 2 _2+  unsafeWrite v 3 _3+  unsafeWrite v 4 _4+  unsafeWrite v 5 _5+  unsafeWrite v 6 _6+  unsafeWrite v 7 _7+  unsafeWrite v 8 _8+  unsafeWrite v 9 _9+  unsafeWrite v 10 _10+  unsafeWrite v 11 _11+  unsafeWrite v 12 _12+  unsafeWrite v 13 _13+  unsafeWrite v 14 _14+  unsafeWrite v 15 _15+  unsafeWrite v 16 _16+  unsafeWrite v 17 _17+  unsafeWrite v 18 _18+  unsafeWrite v 19 _19+  unsafeWrite v 20 _20+  unsafeWrite v 21 _21+  unsafeFreeze v++from23 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> Vector a+from23 _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 = runST $ do+  v <- unsafeNew 23+  unsafeWrite v 0 _0+  unsafeWrite v 1 _1+  unsafeWrite v 2 _2+  unsafeWrite v 3 _3+  unsafeWrite v 4 _4+  unsafeWrite v 5 _5+  unsafeWrite v 6 _6+  unsafeWrite v 7 _7+  unsafeWrite v 8 _8+  unsafeWrite v 9 _9+  unsafeWrite v 10 _10+  unsafeWrite v 11 _11+  unsafeWrite v 12 _12+  unsafeWrite v 13 _13+  unsafeWrite v 14 _14+  unsafeWrite v 15 _15+  unsafeWrite v 16 _16+  unsafeWrite v 17 _17+  unsafeWrite v 18 _18+  unsafeWrite v 19 _19+  unsafeWrite v 20 _20+  unsafeWrite v 21 _21+  unsafeWrite v 22 _22+  unsafeFreeze v++from24 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> Vector a+from24 _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 _23 = runST $ do+  v <- unsafeNew 24+  unsafeWrite v 0 _0+  unsafeWrite v 1 _1+  unsafeWrite v 2 _2+  unsafeWrite v 3 _3+  unsafeWrite v 4 _4+  unsafeWrite v 5 _5+  unsafeWrite v 6 _6+  unsafeWrite v 7 _7+  unsafeWrite v 8 _8+  unsafeWrite v 9 _9+  unsafeWrite v 10 _10+  unsafeWrite v 11 _11+  unsafeWrite v 12 _12+  unsafeWrite v 13 _13+  unsafeWrite v 14 _14+  unsafeWrite v 15 _15+  unsafeWrite v 16 _16+  unsafeWrite v 17 _17+  unsafeWrite v 18 _18+  unsafeWrite v 19 _19+  unsafeWrite v 20 _20+  unsafeWrite v 21 _21+  unsafeWrite v 22 _22+  unsafeWrite v 23 _23+  unsafeFreeze v++from25 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> Vector a+from25 _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 _23 _24 = runST $ do+  v <- unsafeNew 25+  unsafeWrite v 0 _0+  unsafeWrite v 1 _1+  unsafeWrite v 2 _2+  unsafeWrite v 3 _3+  unsafeWrite v 4 _4+  unsafeWrite v 5 _5+  unsafeWrite v 6 _6+  unsafeWrite v 7 _7+  unsafeWrite v 8 _8+  unsafeWrite v 9 _9+  unsafeWrite v 10 _10+  unsafeWrite v 11 _11+  unsafeWrite v 12 _12+  unsafeWrite v 13 _13+  unsafeWrite v 14 _14+  unsafeWrite v 15 _15+  unsafeWrite v 16 _16+  unsafeWrite v 17 _17+  unsafeWrite v 18 _18+  unsafeWrite v 19 _19+  unsafeWrite v 20 _20+  unsafeWrite v 21 _21+  unsafeWrite v 22 _22+  unsafeWrite v 23 _23+  unsafeWrite v 24 _24+  unsafeFreeze v++from26 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> Vector a+from26 _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 _23 _24 _25 = runST $ do+  v <- unsafeNew 26+  unsafeWrite v 0 _0+  unsafeWrite v 1 _1+  unsafeWrite v 2 _2+  unsafeWrite v 3 _3+  unsafeWrite v 4 _4+  unsafeWrite v 5 _5+  unsafeWrite v 6 _6+  unsafeWrite v 7 _7+  unsafeWrite v 8 _8+  unsafeWrite v 9 _9+  unsafeWrite v 10 _10+  unsafeWrite v 11 _11+  unsafeWrite v 12 _12+  unsafeWrite v 13 _13+  unsafeWrite v 14 _14+  unsafeWrite v 15 _15+  unsafeWrite v 16 _16+  unsafeWrite v 17 _17+  unsafeWrite v 18 _18+  unsafeWrite v 19 _19+  unsafeWrite v 20 _20+  unsafeWrite v 21 _21+  unsafeWrite v 22 _22+  unsafeWrite v 23 _23+  unsafeWrite v 24 _24+  unsafeWrite v 25 _25+  unsafeFreeze v++from27 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> Vector a+from27 _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 _23 _24 _25 _26 = runST $ do+  v <- unsafeNew 27+  unsafeWrite v 0 _0+  unsafeWrite v 1 _1+  unsafeWrite v 2 _2+  unsafeWrite v 3 _3+  unsafeWrite v 4 _4+  unsafeWrite v 5 _5+  unsafeWrite v 6 _6+  unsafeWrite v 7 _7+  unsafeWrite v 8 _8+  unsafeWrite v 9 _9+  unsafeWrite v 10 _10+  unsafeWrite v 11 _11+  unsafeWrite v 12 _12+  unsafeWrite v 13 _13+  unsafeWrite v 14 _14+  unsafeWrite v 15 _15+  unsafeWrite v 16 _16+  unsafeWrite v 17 _17+  unsafeWrite v 18 _18+  unsafeWrite v 19 _19+  unsafeWrite v 20 _20+  unsafeWrite v 21 _21+  unsafeWrite v 22 _22+  unsafeWrite v 23 _23+  unsafeWrite v 24 _24+  unsafeWrite v 25 _25+  unsafeWrite v 26 _26+  unsafeFreeze v++from28 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> Vector a+from28 _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 _23 _24 _25 _26 _27 = runST $ do+  v <- unsafeNew 28+  unsafeWrite v 0 _0+  unsafeWrite v 1 _1+  unsafeWrite v 2 _2+  unsafeWrite v 3 _3+  unsafeWrite v 4 _4+  unsafeWrite v 5 _5+  unsafeWrite v 6 _6+  unsafeWrite v 7 _7+  unsafeWrite v 8 _8+  unsafeWrite v 9 _9+  unsafeWrite v 10 _10+  unsafeWrite v 11 _11+  unsafeWrite v 12 _12+  unsafeWrite v 13 _13+  unsafeWrite v 14 _14+  unsafeWrite v 15 _15+  unsafeWrite v 16 _16+  unsafeWrite v 17 _17+  unsafeWrite v 18 _18+  unsafeWrite v 19 _19+  unsafeWrite v 20 _20+  unsafeWrite v 21 _21+  unsafeWrite v 22 _22+  unsafeWrite v 23 _23+  unsafeWrite v 24 _24+  unsafeWrite v 25 _25+  unsafeWrite v 26 _26+  unsafeWrite v 27 _27+  unsafeFreeze v++from29 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> Vector a+from29 _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 _23 _24 _25 _26 _27 _28 = runST $ do+  v <- unsafeNew 29+  unsafeWrite v 0 _0+  unsafeWrite v 1 _1+  unsafeWrite v 2 _2+  unsafeWrite v 3 _3+  unsafeWrite v 4 _4+  unsafeWrite v 5 _5+  unsafeWrite v 6 _6+  unsafeWrite v 7 _7+  unsafeWrite v 8 _8+  unsafeWrite v 9 _9+  unsafeWrite v 10 _10+  unsafeWrite v 11 _11+  unsafeWrite v 12 _12+  unsafeWrite v 13 _13+  unsafeWrite v 14 _14+  unsafeWrite v 15 _15+  unsafeWrite v 16 _16+  unsafeWrite v 17 _17+  unsafeWrite v 18 _18+  unsafeWrite v 19 _19+  unsafeWrite v 20 _20+  unsafeWrite v 21 _21+  unsafeWrite v 22 _22+  unsafeWrite v 23 _23+  unsafeWrite v 24 _24+  unsafeWrite v 25 _25+  unsafeWrite v 26 _26+  unsafeWrite v 27 _27+  unsafeWrite v 28 _28+  unsafeFreeze v++from30 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> Vector a+from30 _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 _23 _24 _25 _26 _27 _28 _29 = runST $ do+  v <- unsafeNew 30+  unsafeWrite v 0 _0+  unsafeWrite v 1 _1+  unsafeWrite v 2 _2+  unsafeWrite v 3 _3+  unsafeWrite v 4 _4+  unsafeWrite v 5 _5+  unsafeWrite v 6 _6+  unsafeWrite v 7 _7+  unsafeWrite v 8 _8+  unsafeWrite v 9 _9+  unsafeWrite v 10 _10+  unsafeWrite v 11 _11+  unsafeWrite v 12 _12+  unsafeWrite v 13 _13+  unsafeWrite v 14 _14+  unsafeWrite v 15 _15+  unsafeWrite v 16 _16+  unsafeWrite v 17 _17+  unsafeWrite v 18 _18+  unsafeWrite v 19 _19+  unsafeWrite v 20 _20+  unsafeWrite v 21 _21+  unsafeWrite v 22 _22+  unsafeWrite v 23 _23+  unsafeWrite v 24 _24+  unsafeWrite v 25 _25+  unsafeWrite v 26 _26+  unsafeWrite v 27 _27+  unsafeWrite v 28 _28+  unsafeWrite v 29 _29+  unsafeFreeze v++from31 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> Vector a+from31 _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 _23 _24 _25 _26 _27 _28 _29 _30 = runST $ do+  v <- unsafeNew 31+  unsafeWrite v 0 _0+  unsafeWrite v 1 _1+  unsafeWrite v 2 _2+  unsafeWrite v 3 _3+  unsafeWrite v 4 _4+  unsafeWrite v 5 _5+  unsafeWrite v 6 _6+  unsafeWrite v 7 _7+  unsafeWrite v 8 _8+  unsafeWrite v 9 _9+  unsafeWrite v 10 _10+  unsafeWrite v 11 _11+  unsafeWrite v 12 _12+  unsafeWrite v 13 _13+  unsafeWrite v 14 _14+  unsafeWrite v 15 _15+  unsafeWrite v 16 _16+  unsafeWrite v 17 _17+  unsafeWrite v 18 _18+  unsafeWrite v 19 _19+  unsafeWrite v 20 _20+  unsafeWrite v 21 _21+  unsafeWrite v 22 _22+  unsafeWrite v 23 _23+  unsafeWrite v 24 _24+  unsafeWrite v 25 _25+  unsafeWrite v 26 _26+  unsafeWrite v 27 _27+  unsafeWrite v 28 _28+  unsafeWrite v 29 _29+  unsafeWrite v 30 _30+  unsafeFreeze v++from32 :: a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> a -> Vector a+from32 _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _19 _20 _21 _22 _23 _24 _25 _26 _27 _28 _29 _30 _31 = runST $ do+  v <- unsafeNew 32+  unsafeWrite v 0 _0+  unsafeWrite v 1 _1+  unsafeWrite v 2 _2+  unsafeWrite v 3 _3+  unsafeWrite v 4 _4+  unsafeWrite v 5 _5+  unsafeWrite v 6 _6+  unsafeWrite v 7 _7+  unsafeWrite v 8 _8+  unsafeWrite v 9 _9+  unsafeWrite v 10 _10+  unsafeWrite v 11 _11+  unsafeWrite v 12 _12+  unsafeWrite v 13 _13+  unsafeWrite v 14 _14+  unsafeWrite v 15 _15+  unsafeWrite v 16 _16+  unsafeWrite v 17 _17+  unsafeWrite v 18 _18+  unsafeWrite v 19 _19+  unsafeWrite v 20 _20+  unsafeWrite v 21 _21+  unsafeWrite v 22 _22+  unsafeWrite v 23 _23+  unsafeWrite v 24 _24+  unsafeWrite v 25 _25+  unsafeWrite v 26 _26+  unsafeWrite v 27 _27+  unsafeWrite v 28 _28+  unsafeWrite v 29 _29+  unsafeWrite v 30 _30+  unsafeWrite v 31 _31+  unsafeFreeze v+