Functions

fn_param  ::= lower_ident ":" type
fn_params ::= fn_param ( "," fn_param )*
            | ""
fn_item   ::= "fn" lower_ident "(" fn_params ")" "->" type "{" stmts "}"