module Soat.FirstOrder.Signature %default total public export record Signature where constructor MkSignature 0 T : Type 0 O : T -> List T -> Type public export record Op (0 sig : Signature) (0 t : sig.T) where constructor MkOp {arity : List sig.T} op : sig.O t arity