-- GSoC 2015 - Haskell bindings for OpenCog. {-# LANGUAGE GADTs #-} {-# LANGUAGE ExistentialQuantification #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE AutoDeriveTypeable #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE StandaloneDeriving #-} -- | This Module defines the main data types for Haskell bindings. module OpenCog.AtomSpace.Types ( TruthVal (..) , AtomName (..) , AtomType (..) , Atom(..) ) where -- | Atom name type. type AtomName = String type AtomType = String -- Main general atom representation. data Atom = Link AtomType [Atom] TruthVal | Node AtomType AtomName TruthVal deriving (Eq,Show,Read) -- | 'TruthVal' represent the different types of TruthValues. data TruthVal = SimpleTV { tvMean :: Double , tvConfidence :: Double } | CountTV { tvMean :: Double , tvCount :: Double , tvConfidence :: Double } | IndefTV { tvMean :: Double , tvL :: Double , tvU :: Double , tvConfLevel :: Double , tvDiff :: Double } | FuzzyTV { tvMean :: Double , tvConfidence :: Double } | ProbTV { tvMean :: Double , tvCount :: Double , tvConfidence :: Double } deriving (Show,Read,Eq)