CurryInfo: curry-interface-2.0.1 / CurryInterface.Parser.qualIdentWithContext

definition:
qualIdentWithContext :: Parser (Either Context (QualIdent, Maybe KindExpr, [Ident]))
qualIdentWithContext =
    (Left <$> contextList <* skipSomeWs) <!>
    ((,,) <$> qualIdent <*> optional (skipSomeWs *> kind) <*> (map Ident <$> typeVariableListNE) *>= decide)
    where 
    decide :: (QualIdent, Maybe KindExpr, [Ident]) -> Parser (Either Context (QualIdent, Maybe KindExpr, [Ident]))
    decide (qi, mk, tvs) = case mk of
        Just _ -> yield (Right (qi, mk, tvs))
        Nothing -> (skipSomeWs *> tokenDoubleArrow *!*> yield (Left [Constraint qi (map VariableType tvs)])) <!> yield (Right (qi, mk, tvs))
demand:
no demanded arguments
deterministic:
deterministic operation
failfree:
<FAILING>
indeterministic:
referentially transparent operation
infix:
no fixity defined
iotype:
{() |-> {<!>._#lambda7}}
name:
qualIdentWithContext
precedence:
no precedence defined
result-values:
{<!>._#lambda7}
signature:
String
-> [(Prelude.Either [CurryInterface.Types.Constraint] (CurryInterface.Types.QualIdent, Prelude.Maybe CurryInterface.Types.KindExpr, [CurryInterface.Types.Ident]), String)]
solution-complete:
operation might suspend on free variables
terminating:
possibly non-terminating
totally-defined:
possibly non-reducible on same data term