{-# LANGUAGE OverloadedStrings #-}

module Funcons.Core.Computations.TypesBuiltin where

import Funcons.EDSL
import Funcons.Types
import Funcons.Operations (Types(ComputationTypes))

library :: FunconLibrary
library = [(Name, EvalFunction)] -> FunconLibrary
libFromList [
    (Name
"computation-types", NullaryFuncon -> EvalFunction
NullaryFuncon NullaryFuncon
stepComputation_Types)
  ]

computation_types_ :: [Funcons] -> Funcons
computation_types_ = Name -> [Funcons] -> Funcons
applyFuncon Name
"computation-types"
stepComputation_Types :: NullaryFuncon
stepComputation_Types = Values -> NullaryFuncon
rewritten (Values -> NullaryFuncon) -> Values -> NullaryFuncon
forall a b. (a -> b) -> a -> b
$ Types -> Values
typeVal Types
forall t. Types t
ComputationTypes