module Satyros.QFIDL.Expressible where import Satyros.QFIDL.Variable (Variable) data Expressible = Singleton Variable Operator Double | Difference Variable Variable Operator Double deriving stock (Expressible -> Expressible -> Bool (Expressible -> Expressible -> Bool) -> (Expressible -> Expressible -> Bool) -> Eq Expressible forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: Expressible -> Expressible -> Bool $c/= :: Expressible -> Expressible -> Bool == :: Expressible -> Expressible -> Bool $c== :: Expressible -> Expressible -> Bool Eq, Int -> Expressible -> ShowS [Expressible] -> ShowS Expressible -> String (Int -> Expressible -> ShowS) -> (Expressible -> String) -> ([Expressible] -> ShowS) -> Show Expressible forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Expressible] -> ShowS $cshowList :: [Expressible] -> ShowS show :: Expressible -> String $cshow :: Expressible -> String showsPrec :: Int -> Expressible -> ShowS $cshowsPrec :: Int -> Expressible -> ShowS Show) data Operator = (::<?) | (::<=?) | (::>?) | (::>=?) | (::=?) | (::<>?) deriving stock (Operator -> Operator -> Bool (Operator -> Operator -> Bool) -> (Operator -> Operator -> Bool) -> Eq Operator forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: Operator -> Operator -> Bool $c/= :: Operator -> Operator -> Bool == :: Operator -> Operator -> Bool $c== :: Operator -> Operator -> Bool Eq, Int -> Operator -> ShowS [Operator] -> ShowS Operator -> String (Int -> Operator -> ShowS) -> (Operator -> String) -> ([Operator] -> ShowS) -> Show Operator forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Operator] -> ShowS $cshowList :: [Operator] -> ShowS show :: Operator -> String $cshow :: Operator -> String showsPrec :: Int -> Operator -> ShowS $cshowsPrec :: Int -> Operator -> ShowS Show)