1234567891011121314151617181920212223242526272829303132333435363738(* This file is free software, part of Zipperposition. See file "license" for more details. *)(** {1 Defined positions for Defined Functions} *)moduleFmt=CCFormat(** positions that are immediate arguments of some defined constant
can be classified as follows:
- active position (patterns on LHS of rules)
- invariant positions (variable on LHS and RHS of rules)
- accumulator positions (variable on LHS, non-variable on RHS)
*)typet=|P_active|P_invariant|P_accumulatortypepos=tletequal(a:t)(b:t):bool=a=bletppout=function|P_active->Fmt.stringout"active"|P_invariant->Fmt.stringout"invariant"|P_accumulator->Fmt.stringout"accumulator"moduleArr:sigtypet=posIArray.tvalpp:tCCFormat.printerend=structtypet=posIArray.tletppout(a:t)=Fmt.(within"[""]"@@hvbox@@seq@@pair~sep:(return":")intpp)out(IArray.to_seqia)end