module ATerms

signature
  constructors
    default     : List(ATerm) -> Annotation
    annotated   : ATerm * Annotation -> ATerm
    list        : List(ATerm) -> ATerm
    placeholder : ATerm -> ATerm
    appl        : AFun * List(ATerm) -> ATerm
    fun         : AFun -> ATerm
    real        : RealCon -> ATerm
    int         : IntCon -> ATerm
    unquoted    : IdCon -> AFun
    quoted      : StrCon -> AFun
                : String -> IdCon
                : String -> StrCon
    real-con    : IntCon * NatCon * OptExp -> RealCon
    absent      : OptExp
    present     : IntCon -> OptExp
    negative    : NatCon -> IntCon
    positive    : NatCon -> IntCon
    natural     : NatCon -> IntCon
                : String -> NatCon


signature
  constructors
    Some : a -> Option(a)
    None : Option(a)


signature
  constructors
    Cons : a * List(a) -> List(a)
    Nil  : List(a)
    Conc : List(a) * List(a) -> List(a)
