Files
loop/src/LensHelp.hs
T
2022-07-06 22:24:02 +01:00

39 lines
803 B
Haskell

module LensHelp
( module Control.Lens
, (.:~)
, (.++~)
, (++.~)
, (.*.*~)
, (.+.+~)
, (+.+.~)
) where
import Geometry
import Control.Lens
infixr 4 .:~
(.:~) :: ASetter s t [a] [a] -> a -> s -> t
(.:~) m x = m %~ (x :)
infixr 4 .*.*~
(.*.*~) :: ASetter s t Point2 Point2 -> Float -> s -> t
{-# INLINABLE (.*.*~) #-}
(.*.*~) m x = m %~ (x *.*)
infixr 4 .+.+~
(.+.+~) :: ASetter s t Point2 Point2 -> Point2 -> s -> t
{-# INLINABLE (.+.+~) #-}
(.+.+~) m x = m %~ (x +.+)
infixr 4 +.+.~
(+.+.~) :: ASetter s t Point2 Point2 -> Point2 -> s -> t
{-# INLINABLE (+.+.~) #-}
(+.+.~) m x = m %~ (+.+ x)
infixr 4 .++~
(.++~) :: ASetter s t [a] [a] -> [a] -> s -> t
(.++~) m x = m %~ (x ++)
infixr 4 ++.~
(++.~) :: ASetter s t [a] [a] -> [a] -> s -> t
(++.~) m x = m %~ (++ x)