module Hint.Data where import Data.Text (Text) import Data.String import qualified Data.Text as T newtype Identifier = Identifier Text deriving (Show, Ord, Eq) instance IsString Identifier where fromString = Identifier . T.pack data Literal = Int Int | Float Double | Boolean Bool | String Text deriving (Show, Eq) data Expr = Literal Literal | If Expr Expr Expr | Bind Identifier Expr Expr | Ident Identifier deriving (Show, Eq)