on cfa7253 help sign in
29 lines 1.4 kB history raw
1--atom functions on primitive atom values plus the basic atom functions
2module ProjectM36.AtomFunctions.Basic where
3import ProjectM36.Base
4import ProjectM36.DataTypes.Day
5import ProjectM36.DataTypes.Either
6import ProjectM36.DataTypes.Maybe
7import ProjectM36.DataTypes.Interval
8import ProjectM36.DataTypes.ByteString
9import ProjectM36.DataTypes.NonEmptyList
10import ProjectM36.AtomFunctions.Primitive
11import ProjectM36.AtomFunction
12import ProjectM36.DataTypes.List
13import ProjectM36.DataTypes.DateTime
14import qualified Data.HashSet as HS
16basicAtomFunctions :: AtomFunctions
17basicAtomFunctions = HS.unions [primitiveAtomFunctions,
18 dayAtomFunctions,
19 dateTimeAtomFunctions,
20 eitherAtomFunctions,
21 maybeAtomFunctions,
22 listAtomFunctions,
23 nonEmptyListAtomFunctions,
24 bytestringAtomFunctions,
25 intervalAtomFunctions]
27--these special atom functions aren't scripted so they can't be serialized normally. Instead, the body remains in the binary and the serialization/deserialization happens by name only.
28precompiledAtomFunctions :: AtomFunctions
29precompiledAtomFunctions = HS.filter (not . isScriptedAtomFunction) basicAtomFunctions