{-# OPTIONS_GHC -Wno-orphans #-}

module Mischief.Math.Vec.Orphans.FieldAccessors where

import GHC.Records
import Linear

instance HasField "x" (V2 a) a where
  getField :: V2 a -> a
  getField :: V2 a -> a
getField (V2 a
x a
_) = a
x

instance HasField "y" (V2 a) a where
  getField :: V2 a -> a
  getField :: V2 a -> a
getField (V2 a
_ a
y) = a
y

instance HasField "x" (V3 a) a where
  getField :: V3 a -> a
  getField :: V3 a -> a
getField (V3 a
x a
_ a
_) = a
x

instance HasField "y" (V3 a) a where
  getField :: V3 a -> a
  getField :: V3 a -> a
getField (V3 a
_ a
y a
_) = a
y

instance HasField "z" (V3 a) a where
  getField :: V3 a -> a
  getField :: V3 a -> a
getField (V3 a
_ a
_ a
z) = a
z