scaleTween :: Monad m => VarT m Float (V2 Float)
scaleTween = V2 <$> x <*> y
  where x = flip tweenStream 1 $ fix $ \nxt -> do
              tween_ easeInExpo 1 2 1
              tween_ easeOutExpo 2 4 1
              tween_ easeInExpo 4 2 1
              tween_ easeOutExpo 2 1 1
              nxt
        y = flip tweenStream 1 $ fix $ \nxt -> do
              tween_ easeInExpo 1 2 1
              tween_ easeOutExpo 2 4 1
              tween_ easeInExpo 4 2 1
              tween_ easeOutExpo 2 1 1
              nxt
scaleTween :: Monad m => VarT m Float (V2 Float)
scaleTween = V2 <$> x <*> y
  where x = flip tweenStream 1 $ fix $ \nxt -> do
              tween_ easeInExpo 1 2 1
              tween_ easeOutExpo 2 4 1
              tween_ easeInExpo 4 2 1
              tween_ easeOutExpo 2 1 1
              nxt
        y = flip tweenStream 1 $ fix $ \nxt -> do
              tween_ easeInExpo 1 2 1
              tween_ easeOutExpo 2 4 1
              tween_ easeInExpo 4 2 1
              tween_ easeOutExpo 2 1 1
              nxt
scaleTween = V2 <$> x <*> y
  where x = flip tweenStream 1 $ fix $ \nxt -> do
              tween_ easeInExpo 1 2 1
              tween_ easeOutExpo 2 4 1
              tween_ easeInExpo 4 2 1
              tween_ easeOutExpo 2 1 1
              nxt
        y = flip tweenStream 1 $ fix $ \nxt -> do
              tween_ easeInExpo 1 2 1
              tween_ easeOutExpo 2 4 1
              tween_ easeInExpo 4 2 1
              tween_ easeOutExpo 2 1 1
              nxt