OpWithInst.hascasl revision d591a82b32594f0992b27477cacb00b97226c9c8
type s
op a : s
var a, b : Type
op __=[s]__ : forall a . a * a -> Unit
. (op __=[s]__ : forall a . a * a -> Unit)(a, a)
. a =[s] a
. a =e=[s:Type] a
op f[a] : a -> Unit
op g[b,a] : a * b -> Unit
op h[b,a] : a -> b
op j[a,b] : a -> b
class Funct : Type -> Type
var f, F : Funct
%% order of var declarations counts
op k[a, f] : f a
op k[b, a, f] : b -> f a
op k[a, b, f] : b -> f a
op l[F, a] : F a
%% or explicit forall order
op k[G, b, a] : forall G: Funct; b, a: Type . b -> G a
. (op __=[s]__ : forall a . a * a -> Unit)[s](a, a)