on fbfa2ea help sign in
27 lines 1.3 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.AtomFunctions.Primitive
10import ProjectM36.AtomFunction
11import ProjectM36.DataTypes.List
12import ProjectM36.DataTypes.DateTime
13import qualified Data.HashSet as HS
15basicAtomFunctions :: AtomFunctions
16basicAtomFunctions = HS.unions [primitiveAtomFunctions,
17 dayAtomFunctions,
18 dateTimeAtomFunctions,
19 eitherAtomFunctions,
20 maybeAtomFunctions,
21 listAtomFunctions,
22 bytestringAtomFunctions,
23 intervalAtomFunctions]
25--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.
26precompiledAtomFunctions :: AtomFunctions
27precompiledAtomFunctions = HS.filter (not . isScriptedAtomFunction) basicAtomFunctions