nominal sample_a = () nominal hg38 = () nominal chr1 = () nominal digest_a = () nominal digest_b = () nominal app_scope = () nominal epoch1 = () nominal sealed = () nominal live = () union chain_authority digest state = | ChainAuthority :: forall digest state. string -> chain_authority digest state union genome_batch sample build contig digest = | GenomeBatch :: forall sample build contig digest. string -> genome_batch sample build contig digest union resource scope epoch sample build contig digest state = | Resource :: forall scope epoch sample build contig digest state. string -> resource scope epoch sample build contig digest state inl publish forall scope epoch sample build contig digest. (authority : chain_authority digest sealed) (batch : genome_batch sample build contig digest) : resource scope epoch sample build contig digest live = match authority, batch with | ChainAuthority _, GenomeBatch label => Resource label inl main () = inl stale : chain_authority digest_b sealed = ChainAuthority "stale" inl batch : genome_batch sample_a hg38 chr1 digest_a = GenomeBatch "variants" inl resource : resource app_scope epoch1 sample_a hg38 chr1 digest_a live = publish stale batch resource