Advanced Types
The Full Version of $type
$type+$ type $~ %noun
$@ $? %noun
%void
==
$% [%atom p=term q=(unit @)]
[%cell p=type q=type]
[%core p=type q=coil]
[%face p=$@(term tune) q=type]
[%fork p=(set type)]
[%hint p=(pair type note) q=type]
[%hold p=type q=hoon]
==
::
+$ coil $: p=garb :: name, wet=dry, vary
q=type :: context
r=(pair seminoun (map term tome)) :: chapters
== ::
::
+$ garb (trel (unit term) poly vair) :: core
+$ poly ?(%wet %dry)
+$ vair ?(%gold %iron %lead %zinc)
+$ tome (pair what (map term hoon))
+$ tune :: complex
$~ [~ ~] ::
$: p=(map term (unit hoon)) :: aliases
q=(list hoon) :: bridges
== ::%core: advanced polymorphism
%core: advanced polymorphismDry arms
Dry polymorphism and core nesting rules
Wet arms
Constant folding
%face: aliases and bridges
%face: aliases and bridgesLast updated