{-# OPTIONS_GHC -Wno-orphans #-}

module Mischief.Assets.Orphans where

import KDL qualified
import Linear

instance (KDL.DecodeValue a) => KDL.DecodeNode (V2 a) where
  nodeDecoder :: NodeDecoder (V2 a)
nodeDecoder = a -> a -> V2 a
forall a. a -> a -> V2 a
V2 (a -> a -> V2 a)
-> DecodeArrow Node () a -> DecodeArrow Node () (a -> V2 a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> DecodeArrow Node () a
forall a. DecodeValue a => NodeDecoder a
KDL.arg DecodeArrow Node () (a -> V2 a)
-> DecodeArrow Node () a -> NodeDecoder (V2 a)
forall a b.
DecodeArrow Node () (a -> b)
-> DecodeArrow Node () a -> DecodeArrow Node () b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> DecodeArrow Node () a
forall a. DecodeValue a => NodeDecoder a
KDL.arg

instance (KDL.DecodeValue a) => KDL.DecodeNode (V3 a) where
  nodeDecoder :: NodeDecoder (V3 a)
nodeDecoder = a -> a -> a -> V3 a
forall a. a -> a -> a -> V3 a
V3 (a -> a -> a -> V3 a)
-> DecodeArrow Node () a -> DecodeArrow Node () (a -> a -> V3 a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> DecodeArrow Node () a
forall a. DecodeValue a => NodeDecoder a
KDL.arg DecodeArrow Node () (a -> a -> V3 a)
-> DecodeArrow Node () a -> DecodeArrow Node () (a -> V3 a)
forall a b.
DecodeArrow Node () (a -> b)
-> DecodeArrow Node () a -> DecodeArrow Node () b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> DecodeArrow Node () a
forall a. DecodeValue a => NodeDecoder a
KDL.arg DecodeArrow Node () (a -> V3 a)
-> DecodeArrow Node () a -> NodeDecoder (V3 a)
forall a b.
DecodeArrow Node () (a -> b)
-> DecodeArrow Node () a -> DecodeArrow Node () b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> DecodeArrow Node () a
forall a. DecodeValue a => NodeDecoder a
KDL.arg

instance (KDL.DecodeValue a) => KDL.DecodeNode (V4 a) where
  nodeDecoder :: (KDL.DecodeValue a) => KDL.NodeDecoder (V4 a)
  nodeDecoder :: DecodeValue a => NodeDecoder (V4 a)
nodeDecoder = a -> a -> a -> a -> V4 a
forall a. a -> a -> a -> a -> V4 a
V4 (a -> a -> a -> a -> V4 a)
-> DecodeArrow Node () a
-> DecodeArrow Node () (a -> a -> a -> V4 a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> DecodeArrow Node () a
forall a. DecodeValue a => NodeDecoder a
KDL.arg DecodeArrow Node () (a -> a -> a -> V4 a)
-> DecodeArrow Node () a -> DecodeArrow Node () (a -> a -> V4 a)
forall a b.
DecodeArrow Node () (a -> b)
-> DecodeArrow Node () a -> DecodeArrow Node () b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> DecodeArrow Node () a
forall a. DecodeValue a => NodeDecoder a
KDL.arg DecodeArrow Node () (a -> a -> V4 a)
-> DecodeArrow Node () a -> DecodeArrow Node () (a -> V4 a)
forall a b.
DecodeArrow Node () (a -> b)
-> DecodeArrow Node () a -> DecodeArrow Node () b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> DecodeArrow Node () a
forall a. DecodeValue a => NodeDecoder a
KDL.arg DecodeArrow Node () (a -> V4 a)
-> DecodeArrow Node () a -> NodeDecoder (V4 a)
forall a b.
DecodeArrow Node () (a -> b)
-> DecodeArrow Node () a -> DecodeArrow Node () b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> DecodeArrow Node () a
forall a. DecodeValue a => NodeDecoder a
KDL.arg

instance KDL.DecodeNode Int where
  nodeDecoder :: NodeDecoder Int
nodeDecoder = NodeDecoder Int
forall a. DecodeValue a => NodeDecoder a
KDL.arg

instance KDL.DecodeNode Integer where
  nodeDecoder :: NodeDecoder Integer
nodeDecoder = NodeDecoder Integer
forall a. DecodeValue a => NodeDecoder a
KDL.arg

instance KDL.DecodeNode Float where
  nodeDecoder :: NodeDecoder Float
nodeDecoder = NodeDecoder Float
forall a. DecodeValue a => NodeDecoder a
KDL.arg

instance KDL.DecodeNode Double where
  nodeDecoder :: NodeDecoder Double
nodeDecoder = NodeDecoder Double
forall a. DecodeValue a => NodeDecoder a
KDL.arg