Split copy function in two, one that accepts a lenght param, and one that doesn't
authorChristiaan Baaij <christiaan.baaij@gmail.com>
Mon, 29 Jun 2009 13:47:07 +0000 (15:47 +0200)
committerChristiaan Baaij <christiaan.baaij@gmail.com>
Mon, 29 Jun 2009 13:47:07 +0000 (15:47 +0200)
Data/Param/TFVec.hs

index dbe46e97934e73a1c22c3496491ae9aa11fd40c8..50b2fda258b44de6c285aeacae5889aeeddd5ab9 100644 (file)
@@ -53,6 +53,7 @@ module Data.Param.TFVec
   , iterate
   , generate
   , copy
+  , copyn
   ) where
     
 
@@ -234,8 +235,11 @@ iterate s f x = let s' = fromIntegerT s in TFVec (P.take s' $ P.iterate f x)
 generate :: NaturalT s => s -> (a -> a) -> a -> TFVec s a
 generate s f x = let s' = fromIntegerT s in TFVec (P.take s' $ P.tail $ P.iterate f x)
 
-copy :: NaturalT s => s -> a -> TFVec s a
-copy s x = iterate s id x
+copy :: NaturalT s => a -> TFVec s a
+copy x = copyn (undefined :: s) x
+
+copyn :: NaturalT s => s -> a -> TFVec s a
+copyn s x = iterate s id x
 
 -- =============
 -- = Instances =