packages feed

ruin-0.1.0.0: test/MustCompile/RNA.hs

{-# Language DataKinds #-}
{-# Language QuasiQuotes #-}
{-# Language TypeOperators #-}
{-# Language ViewPatterns #-}

{-# OPTIONS_GHC -Wno-missing-signatures #-}

module MustCompile.RNA () where

import Data.Ruin
import Data.Ruin.Ancillaries (Tup1)

import XY

_p = (
    (\[rna|(l...) x y|] -> [lx,ly]) :: ("x" :@ a,"y" :@ a) -> [a]
  ,
    (\[rna|(...R) x y|] -> [xR,yR]) :: ("x" :@ a,"y" :@ a) -> [a]
  ,
    \[rna||] -> ()
  ,
    (\[rna|c@C|] -> c) :: Tup1 ("C" :@ a) -> a
  ,
    (\[rna| !strict !bang@! |] -> [strict,bang]) :: ("strict" :@ a,"!" :@ a) -> [a]
  ,
    (\[rna|_ _@x|] -> ()) :: ("_" :@ a, "x" :@ x) -> ()
  ,
    (\[rna|XY (...R) a@x|] -> aR) :: XY x y -> x
  )

_e = (
    [rna||] :: ()
  ,
    [rna|a|] :: Tup1 ("a" :@ ())
  ,
    [rna|a b|] :: ("a" :@ (),"b" :@ ())
  ,
    [rna|a b|] :: ("a" :@ (),"b" :@ ())
  ,
    [rna|XY a@x b@y|] :: XY () ()
  )
  where
  a = ()
  b = ()