19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
ParamPat( localVarPattern ),
ValueToIRExpr( ValuePattern(
ANYTERM( _ ),
localVarPattern,
ANYTERM( _ ) ) ),
[]( const Term& lhs, const Term& rhs, UnificationContext& uc ) -> UniGen
{
auto lvarType = *FromValue< LocalVarType >( *ValueFromIRExpr( ValuePatternFromIRExpr( lhs )->type() ) );
auto rhsVal = *ValuePatternFromIRExpr( rhs );
auto rvarType = *FromValue< LocalVarType >( *ValueFromIRExpr( rhsVal.type() ) );
for( auto&& [s, uc] : Unify( lvarType.type(), rvarType.type(), uc ) )
|
|
|
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
ParamPat( localVarPattern ),
ValueToIRExpr( ValuePattern(
ANYTERM( _ ),
localVarPattern,
ANYTERM( _ ) ) ),
[]( const Term& lhs, const Term& rhs, const UnificationContext& uc ) -> UniGen
{
auto lvarType = *FromValue< LocalVarType >( *ValueFromIRExpr( ValuePatternFromIRExpr( lhs )->type() ) );
auto rhsVal = *ValuePatternFromIRExpr( rhs );
auto rvarType = *FromValue< LocalVarType >( *ValueFromIRExpr( rhsVal.type() ) );
for( auto&& [s, uc] : Unify( lvarType.type(), rvarType.type(), uc ) )
|