{-# LANGUAGE OverloadedStrings, LambdaCase #-} module Funcons.Core.Values.TypesBuiltin where import Funcons.EDSL import qualified Funcons.Operations as VAL library :: FunconLibrary library = [(Name, EvalFunction)] -> FunconLibrary libFromList [ (Name "datatype-values", ([Funcons] -> Funcons) -> ([OpExpr Funcons] -> OpExpr Funcons) -> EvalFunction fromNullaryValOp [Funcons] -> Funcons datatype_values_ [OpExpr Funcons] -> OpExpr Funcons forall t. HasValues t => [OpExpr t] -> OpExpr t VAL.datatype_values_) , (Name "ground-values", ([Funcons] -> Funcons) -> ([OpExpr Funcons] -> OpExpr Funcons) -> EvalFunction fromNullaryValOp [Funcons] -> Funcons ground_values_ [OpExpr Funcons] -> OpExpr Funcons forall t. HasValues t => [OpExpr t] -> OpExpr t VAL.ground_values_) , (Name "ground-vals", ([Funcons] -> Funcons) -> ([OpExpr Funcons] -> OpExpr Funcons) -> EvalFunction fromNullaryValOp [Funcons] -> Funcons ground_values_ [OpExpr Funcons] -> OpExpr Funcons forall t. HasValues t => [OpExpr t] -> OpExpr t VAL.ground_values_) , (Name "types", ([Funcons] -> Funcons) -> ([OpExpr Funcons] -> OpExpr Funcons) -> EvalFunction fromNullaryValOp [Funcons] -> Funcons types_ [OpExpr Funcons] -> OpExpr Funcons forall t. HasValues t => [OpExpr t] -> OpExpr t VAL.types_) , (Name "value-types", ([Funcons] -> Funcons) -> ([OpExpr Funcons] -> OpExpr Funcons) -> EvalFunction fromNullaryValOp [Funcons] -> Funcons value_types_ [OpExpr Funcons] -> OpExpr Funcons forall t. HasValues t => [OpExpr t] -> OpExpr t VAL.value_types_) , (Name "empty-type", ([Funcons] -> Funcons) -> ([OpExpr Funcons] -> OpExpr Funcons) -> EvalFunction fromNullaryValOp [Funcons] -> Funcons empty_type_ [OpExpr Funcons] -> OpExpr Funcons forall t. HasValues t => [OpExpr t] -> OpExpr t VAL.empty_type_) ] datatype_values_ :: [Funcons] -> Funcons datatype_values_ = Name -> [Funcons] -> Funcons applyFuncon Name "datatype-values" ground_values_ :: [Funcons] -> Funcons ground_values_ = Name -> [Funcons] -> Funcons applyFuncon Name "ground-values" ground_vals_ :: [Funcons] -> Funcons ground_vals_ = Name -> [Funcons] -> Funcons applyFuncon Name "ground-vals" types_ :: [Funcons] -> Funcons types_ = Name -> [Funcons] -> Funcons applyFuncon Name "types" value_types_ :: [Funcons] -> Funcons value_types_ = Name -> [Funcons] -> Funcons applyFuncon Name "value-types" empty_type_ :: [Funcons] -> Funcons empty_type_ = Name -> [Funcons] -> Funcons applyFuncon Name "empty-type"