strTake :: Exp Int -> Exp String -> Exp String
strTake n x = do Value n <- n; Value x <- x; v <- var; emit $ StrCpy v x n (lit ""); return $ Value $ val v

-- | Drop the first @n@ characters from a string, @strDrop 2 \"test\" '%==' \"st\"@.
strTake :: Exp Int -> Exp String -> Exp String
strTake n x = do Value n <- n; Value x <- x; v <- var; emit $ StrCpy v x n (lit ""); return $ Value $ val v

-- | Drop the first @n@ characters from a string, @strDrop 2 \"test\" '%==' \"st\"@.
strTake n x = do Value n <- n; Value x <- x; v <- var; emit $ StrCpy v x n (lit ""); return $ Value $ val v

-- | Drop the first @n@ characters from a string, @strDrop 2 \"test\" '%==' \"st\"@.