module ProjectM36.AtomFunctions.Basic where
import ProjectM36.Base
import ProjectM36.DataTypes.Day
import ProjectM36.DataTypes.Either
import ProjectM36.DataTypes.Maybe
import ProjectM36.DataTypes.Interval
import ProjectM36.DataTypes.ByteString
import ProjectM36.DataTypes.NonEmptyList
import ProjectM36.AtomFunctions.Primitive
import ProjectM36.AtomFunction
import ProjectM36.DataTypes.List
import ProjectM36.DataTypes.DateTime
import qualified Data.HashSet as HS
basicAtomFunctions :: AtomFunctions
basicAtomFunctions = HS.unions [primitiveAtomFunctions,
dayAtomFunctions,
dateTimeAtomFunctions,
eitherAtomFunctions,
maybeAtomFunctions,
listAtomFunctions,
nonEmptyListAtomFunctions,
bytestringAtomFunctions,
intervalAtomFunctions]
precompiledAtomFunctions :: AtomFunctions
precompiledAtomFunctions = HS.filter (not . isScriptedAtomFunction) basicAtomFunctions