{-# LANGUAGE OverloadedStrings, LambdaCase #-}

module Funcons.Core.Values.TypesBuiltin where

import Funcons.EDSL 
import qualified Funcons.Operations as VAL

library = libFromList [
    ("datatype-values", fromNullaryValOp datatype_values_ VAL.datatype_values_)
  , ("ground-values", fromNullaryValOp ground_values_ VAL.ground_values_)
  , ("ground-vals", fromNullaryValOp ground_values_ VAL.ground_values_)
  , ("none", fromNullaryValOp none_ VAL.none_)
  , ("defined-values", fromNullaryValOp defined_values_ VAL.defined_values_)
  , ("nothing", fromNullaryValOp nothing_ VAL.nothing_)
  , ("types", fromNullaryValOp types_ VAL.types_)
  , ("value-types", fromNullaryValOp value_types_ VAL.value_types_)
  ]

types_ = applyFuncon "types"
value_types_ = applyFuncon "value-types"
defined_values_ = applyFuncon "defined-values"
nothing_ = applyFuncon "nothing"
datatype_values_ = applyFuncon "datatype-values" 
none_ = applyFuncon "none"
ground_values_ = applyFuncon "ground-values"