CurryInfo: verify-non-fail-2.0.0 / Verify.ESMT.matchSort

definition: Info
 
matchSort :: Sort -> Sort -> Maybe TPSubst
matchSort s1@(SComb sn1 ss1) s2@(SComb sn2 ss2)
 | isAnonymousType s2
 = Just emptyTPSubst
 | isTypeParameter s1
 = Just $ if s1 == s2
            then emptyTPSubst
            else FM.insert (head (typeParamsOfSort s1)) s2 emptyTPSubst
 | otherwise
 = if sn1 == sn2 then matchSorts ss1 ss2 else Nothing
demand: Info
 arguments 1 2
deterministic: Info
 deterministic operation
documentation: Info
 
-------------------------------------------------------------------------
Compute sort matching, i.e., if `matchSort t1 t2 = s`, then `t2 = s(t1)`.
failfree: Info
 <FAILING>
indeterministic: Info
 referentially transparent operation
infix: Info
 no fixity defined
iotype: Info
 {({SComb},{SComb}) |-> _}
name: Info
 matchSort
precedence: Info
 no precedence defined
result-values: Info
 _
signature: Info
 Sort -> Sort -> Prelude.Maybe (Data.Map.Map String Sort)
solution-complete: Info
 operation might suspend on free variables
terminating: Info
 possibly non-terminating
totally-defined: Info
 possibly non-reducible on same data term