CurryInfo: wui2-3.1.0 / HTML.WUI.wPair

definition:
wPair :: (Data a, Data b) => WuiSpec a -> WuiSpec b -> WuiSpec (a,b)
-- This simple implementation does not work in KiCS2 due to non-determinism
-- cause by functional patterns:
-- wPair = wCons2 (\a b -> (a,b))
wPair (WuiSpec wparamsa showa cora reada) (WuiSpec wparamsb showb corb readb) =
  WuiSpec (renderTuple, tupleError, const True) showc corc readc
 where
  showc (render,errmsg,legal) nocheck (va,vb) =
    let (hea,rta) = showa wparamsa nocheck va
        (heb,rtb) = showb wparamsb nocheck vb
     in ((if nocheck || legal (va,vb)
            then render
            else renderError render errmsg) [hea,heb], states2state [rta,rtb])

  corc wparamsc (va,vb) = conditionOf wparamsc (va,vb) &&
                          cora wparamsa va && corb wparamsb vb

  readc env s =
    let [ra,rb] = state2states s
    in (reada env ra, readb env rb)
demand:
arguments 3 4
deterministic:
deterministic operation
documentation:
--- WUI combinator for pairs.
failfree:
<FAILING>
indeterministic:
referentially transparent operation
infix:
no fixity defined
iotype:
{(_,_,{WuiSpec},{WuiSpec}) |-> {WuiSpec}}
name:
wPair
precedence:
no precedence defined
result-values:
{WuiSpec}
signature:
(Prelude.Data a, Prelude.Data b) => WuiSpec a -> WuiSpec b -> WuiSpec (a, b)
solution-complete:
operation might suspend on free variables
terminating:
yes
totally-defined:
possibly non-reducible on same data term