packages feed

fir-0.1.0.0: test/Tests/Unicode/Syntax.hs

{-# LANGUAGE BlockArguments      #-}
{-# LANGUAGE DataKinds           #-}
{-# LANGUAGE FlexibleInstances   #-}
{-# LANGUAGE GADTs               #-}
{-# LANGUAGE OverloadedLabels    #-}
{-# LANGUAGE PatternSynonyms     #-}
{-# LANGUAGE PolyKinds           #-}
{-# LANGUAGE RebindableSyntax    #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications    #-}
{-# LANGUAGE TypeOperators       #-}
{-# LANGUAGE UnicodeSyntax       #-}

module Tests.Unicode.Syntax where

-- fir
import FIR

------------------------------------------------
-- program

type Defs = '[ "υβο"    ':-> Uniform '[ Binding 0, DescriptorSet 0 ]
                               ( Struct '[ "φ" ':-> Float ] )
             , "προϊόν" ':-> Output '[ Location 0 ] Float
             , "κύριος" ':-> EntryPoint '[] Vertex
             ]

program :: Module Defs
program = Module $ entryPoint @"κύριος" @Vertex do

  φ <- use @(Name "υβο" :.: Name "φ")
  δ₀ <- def @"δ₀" @R @Float $ 0.1 * φ
  put @"προϊόν" δ₀