packages feed

Hate-0.1.4.3: samples/Vec2Lens.hs

module Vec2Lens(x,y) where

import Data.Vect.Float
import Control.Lens

x :: Simple Lens Vec2 Float
x = lens getX setX

y :: Simple Lens Vec2 Float
y = lens getY setY

getX :: Vec2 -> Float
getX (Vec2 x' _) = x'
getY :: Vec2 -> Float
getY (Vec2 _ y') = y'

setX :: Vec2 -> Float -> Vec2
setX (Vec2 _ y') nx = Vec2 nx y'
setY :: Vec2 -> Float -> Vec2
setY (Vec2 x' _) ny = Vec2 x' ny