definition: |
wCons2 :: (Data a, Data b, Data c) => (a->b->c) -> WuiSpec a -> WuiSpec b -> WuiSpec c wCons2 cons (WuiSpec wparamsa showa cora reada) (WuiSpec wparamsb showb corb readb) = WuiSpec (renderTuple, tupleError, const True) showc corc readc where showc (render,errmsg,legal) nocheck vc | cons va vb =:<= vc = let (hea,rta) = showa wparamsa nocheck va (heb,rtb) = showb wparamsb nocheck vb in ((if nocheck || legal (cons va vb) then render else renderError render errmsg) [hea,heb], states2state [rta,rtb]) where va,vb free corc wparamsc vc | cons va vb =:<= vc = conditionOf wparamsc (cons va vb) && cora wparamsa va && corb wparamsb vb where va,vb free readc env s = let [ra,rb] = state2states s in cons (reada env ra) (readb env rb) |
demand: |
arguments 5 6 |
deterministic: |
possibly non-deterministic operation |
documentation: |
--- WUI combinator for constructors of arity 2. --- The first argument is the binary constructor. --- The second and third arguments are the WUI specifications --- for the argument types. |
failfree: |
<FAILING> |
indeterministic: |
referentially transparent operation |
infix: |
no fixity defined |
iotype: |
{(_,_,_,_,{WuiSpec},{WuiSpec}) |-> {WuiSpec}} |
name: |
wCons2 |
precedence: |
no precedence defined |
result-values: |
{WuiSpec} |
signature: |
(Prelude.Data a, Prelude.Data b, Prelude.Data c) => (a -> b -> c) -> WuiSpec a -> WuiSpec b -> WuiSpec c |
solution-complete: |
operation might suspend on free variables |
terminating: |
possibly non-terminating |
totally-defined: |
possibly non-reducible on same data term |