33 lines
663 B
Haskell
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)
|