{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE PatternSynonyms #-}
module Analysis.Factivity.Signature ( contextParams
, tauFact
) where
import Framework.Lambda.Convenience
import Framework.Lambda.Signature
import Framework.Lambda.Terms
import Framework.Lambda.Types
import Theory.Signature
tauFact :: Sig
tauFact :: Sig
tauFact = Sig
tau0 Sig -> Sig -> Sig
forall (m :: * -> *) a b.
Alternative m =>
(a -> m b) -> (a -> m b) -> a -> m b
<||>
Sig
tauNames Sig -> Sig -> Sig
forall (m :: * -> *) a b.
Alternative m =>
(a -> m b) -> (a -> m b) -> a -> m b
<||>
Sig
tauStates Sig -> Sig -> Sig
forall (m :: * -> *) a b.
Alternative m =>
(a -> m b) -> (a -> m b) -> a -> m b
<||>
Type -> [(String, Type)] -> Sig
mkStateSig Type
ι [ ( String
"epi" , Type
e Type -> Type -> Type
:→ (Type
ω Type -> Type -> Type
:→ Type
t) Type -> Type -> Type
:→ Type
t )
, ( String
"ling" , Type
e Type -> Type -> Type
:→ Type
t )
, ( String
"phil" , Type
e Type -> Type -> Type
:→ Type
t ) ] Sig -> Sig -> Sig
forall (m :: * -> *) a b.
Alternative m =>
(a -> m b) -> (a -> m b) -> a -> m b
<||>
Type -> [(String, Type)] -> Sig
mkStateSig Type
σ [ ( String
"tau_know" , Type
t ) ]
tauNames :: Sig
tauNames :: Sig
tauNames = \case
Left String
"j" -> Type -> Maybe Type
forall a. a -> Maybe a
Just Type
e
Left String
"b" -> Type -> Maybe Type
forall a. a -> Maybe a
Just Type
e
Either String Double
_ -> Maybe Type
forall a. Maybe a
Nothing
contextParams :: [String]
contextParams :: [String]
contextParams = []