Files
loop/src/LensHelp.hs
T

33 lines
663 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 [a] [a] -> [a] -> s -> t
(.++~) m x = m %~ (x ++)
infixr 4 ++.~
(++.~) :: ASetter s t [a] [a] -> [a] -> s -> t
(++.~) m x = m %~ (++ x)