mischief-render-0.1.0.0: src/Mischief/Shader/Internal/Singletons.hs
{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE EmptyCase #-}
{-# LANGUAGE ExistentialQuantification #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE InstanceSigs #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE StandaloneKindSignatures #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeAbstractions #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE NoCUSKs #-}
{-# LANGUAGE NoNamedWildCards #-}
{-# LANGUAGE NoStarIsType #-}
module Mischief.Shader.Internal.Singletons where
import Data.Singletons.Base.CustomStar
import GHC.TypeLits
import Prelude (Eq)
data PrimitiveTypes = TInt | TFloat | TUInt deriving (Eq)
data Types where
Primitive :: PrimitiveTypes -> Types
ArrayType :: Types -> Types
VectorType :: Nat -> PrimitiveTypes -> Types
MatrixType :: Nat -> Nat -> Types
TTexture :: Types
TSampler :: Types
TVoid :: Types
TBool :: Types
MType :: Types -> Types
deriving (Eq)
genSingletons [''PrimitiveTypes, ''Types]