{-# 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