packages feed

zeolite-lang-0.1.0.0: src/Test/testfiles/concrete.0rx

// A concrete type with contrived comments.
concrete/*!!!*/Type<#a,#b // <- contravariant params
             |#c,#d // <- invariant params
             |#e,#f /* <- covariant params*/> {
  refines /* <- used with value interfaces */ Parent
  refines Other<Type2<#a>,#f>
  defines /* <- used with type interfaces */ Equals<Type<#a,#b,#c,#d,#e,#f>>
  #a allows /* <- used with value-interface filters */ Parent
  #b requires Type2<#a>
  #c defines // <- used with type-interface filters
    Equals<#c /* <- a type arg */>

  @category create<#x>
    #x requires Type1<Type3>
  () -> (optional Type1<Type3>)

  @type create2<#y>
    #y requires #x
    #y allows T2
    #y defines T3
  () -> (optional #x)

  @value get () -> (Type1<Type3>)
  @value set (Type1<Type3>) -> ()
}