{-# 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