packages feed

MiniAgda-0.2014.1.9: test/succeed/MutualBigDataKindInf.ma

-- 2010-09-20

data Unit : Set { unit : Unit }
mutual {
  
  data MaybeBig : Set 1
  { Nothing : MaybeBig
  ; Just    : Unit -> Big -> MaybeBig
  }

  data Big : Set 1
  { BigIn : (BigOut : Set) -> Big
  } fields BigOut

}

fun Maybe : MaybeBig -> Set -> (Set -> Set) -> Set
{ Maybe Nothing A F = A
; Maybe (Just u B) A F = F (BigOut B)
}