context ordered
    with parameters
      T: type

    with members
      ?<?: function
          with parameters
            instance of type T (not function type) 
            instance of type T (not function type) 
          returning 
            signed int 

      ?<=?: function
          with parameters
            instance of type T (not function type) 
            instance of type T (not function type) 
          returning 
            signed int 


subrange: type for instance of type base_t (not function type) 
  with parameters
    base_t: type
      with assertions
        instance of context ordered 
          with parameters
            instance of type base_t (not function type) 



?=?: automatically generated function
    with parameters
      _dst: pointer to instance of type subrange (not function type) 
      _src: instance of type subrange (not function type) 
    returning 
      instance of type subrange (not function type) 
    with body 
      CompoundStmt
                  Return Statement, returning: Applying untyped: 
    Name: ?=?
...to: 
    Cast of:
      Variable Expression: _dst: pointer to instance of type subrange (not function type) 

    to:
      pointer to instance of type base_t (not function type) 
    Cast of:
      Variable Expression: _src: instance of type subrange (not function type) 

    to:
      instance of type base_t (not function type) 



day_of_month: instance of type subrange (not function type) 
  with parameters
    unsigned int 
          Name: 1

    constant expression 31 signed int 

lcase: instance of type subrange (not function type) 
  with parameters
    char 
    constant expression 'a' char 
    constant expression 'z' char 

foo: instance of type subrange (not function type) 
  with parameters
    signed int 
          Name: 0

          Applying untyped: 
          Name: ?&?
      ...to: 
          Applying untyped: 
              Name: rand
          ...to: 
constant expression 0xF signed int 

lbound: forall
      T: type
        with assertions
          ?=?: pointer to function
              with parameters
                pointer to instance of type T (not function type) 
                instance of type T (not function type) 
              returning 
                instance of type T (not function type) 


    function
    with parameters
      v: instance of type subrange (not function type) 
        with parameters
          instance of type T (not function type) 
                      Name: low

                      Name: high


    returning 
      instance of type T (not function type) 
    with body 
      CompoundStmt
                  Return Statement, returning: Name: low



hbound: forall
      T: type
        with assertions
          ?=?: pointer to function
              with parameters
                pointer to instance of type T (not function type) 
                instance of type T (not function type) 
              returning 
                instance of type T (not function type) 


    function
    with parameters
      v: instance of type subrange (not function type) 
        with parameters
          instance of type T (not function type) 
                      Name: low

                      Name: high


    returning 
      instance of type T (not function type) 
    with body 
      CompoundStmt
                  Return Statement, returning: Name: high



lday: unsigned int with initializer 
  Simple Initializer:     Applying untyped: 
        Name: lbound
    ...to: 
        Name: day_of_month

?=?: inline forall
      T: type
        with assertions
          ?=?: pointer to function
              with parameters
                pointer to instance of type T (not function type) 
                instance of type T (not function type) 
              returning 
                instance of type T (not function type) 

          ?<?: pointer to function
              with parameters
                instance of type T (not function type) 
                instance of type T (not function type) 
              returning 
                signed int 

          ?<=?: pointer to function
              with parameters
                instance of type T (not function type) 
                instance of type T (not function type) 
              returning 
                signed int 


    function
    with parameters
      target: pointer to instance of type subrange (not function type) 
        with parameters
          instance of type T (not function type) 
                      Name: low

                      Name: high


      source: instance of type T (not function type) 
    returning 
      instance of type subrange (not function type) 
        with parameters
          instance of type T (not function type) 
                      Name: low

                      Name: high


    with body 
      CompoundStmt
                  If on condition: 
              Cast of:
                Applying untyped: 
                    Name: ?!=?
                ...to: 
                    Short-circuited operation (and) on: Cast of:
  Applying untyped: 
      Name: ?!=?
  ...to: 
      Applying untyped: 
          Name: ?<=?
      ...to: 
          Name: low
          Name: source
      Name: 0

to:
  signed int 
 and Cast of:
  Applying untyped: 
      Name: ?!=?
  ...to: 
      Applying untyped: 
          Name: ?<=?
      ...to: 
          Name: source
          Name: high
      Name: 0

to:
  signed int 

                    Name: 0

              to:
                signed int 
          .... and branches: 
              Expression Statement:
                Applying untyped: 
                    Name: ?=?
                ...to: 
                    Address of:
                      Applying untyped: 
                          Name: *?
                      ...to: 
                          Cast of:
                            Name: target

                          to:
                            pointer to instance of type T (not function type) 
                    Name: source
              Expression Statement:
                Applying untyped: 
                    Name: abort
                ...to: 

                  Return Statement, returning: Name: target



?=?: inline forall
      T: type
        with assertions
          ?=?: pointer to function
              with parameters
                pointer to instance of type T (not function type) 
                instance of type T (not function type) 
              returning 
                instance of type T (not function type) 

          ?<?: pointer to function
              with parameters
                instance of type T (not function type) 
                instance of type T (not function type) 
              returning 
                signed int 

          ?<=?: pointer to function
              with parameters
                instance of type T (not function type) 
                instance of type T (not function type) 
              returning 
                signed int 


    function
    with parameters
      target: pointer to instance of type subrange (not function type) 
        with parameters
          instance of type T (not function type) 
                      Name: t_low

                      Name: t_high


      source: instance of type subrange (not function type) 
        with parameters
          instance of type T (not function type) 
                      Name: s_low

                      Name: s_high


    returning 
      instance of type subrange (not function type) 
        with parameters
          instance of type T (not function type) 
                      Name: t_low

                      Name: t_high


    with body 
      CompoundStmt
                  If on condition: 
              Cast of:
                Applying untyped: 
                    Name: ?!=?
                ...to: 
                    Short-circuited operation (and) on: Cast of:
  Applying untyped: 
      Name: ?!=?
  ...to: 
      Short-circuited operation (or) on: Cast of:
  Applying untyped: 
      Name: ?!=?
  ...to: 
      Applying untyped: 
          Name: ?<=?
      ...to: 
          Name: t_low
          Name: s_low
      Name: 0

to:
  signed int 
 and Cast of:
  Applying untyped: 
      Name: ?!=?
  ...to: 
      Applying untyped: 
          Name: ?<=?
      ...to: 
          Name: t_low
          Name: source
      Name: 0

to:
  signed int 

      Name: 0

to:
  signed int 
 and Cast of:
  Applying untyped: 
      Name: ?!=?
  ...to: 
      Short-circuited operation (or) on: Cast of:
  Applying untyped: 
      Name: ?!=?
  ...to: 
      Applying untyped: 
          Name: ?<=?
      ...to: 
          Name: s_high
          Name: t_high
      Name: 0

to:
  signed int 
 and Cast of:
  Applying untyped: 
      Name: ?!=?
  ...to: 
      Applying untyped: 
          Name: ?<=?
      ...to: 
          Name: source
          Name: t_high
      Name: 0

to:
  signed int 

      Name: 0

to:
  signed int 

                    Name: 0

              to:
                signed int 
          .... and branches: 
              Expression Statement:
                Applying untyped: 
                    Name: ?=?
                ...to: 
                    Address of:
                      Applying untyped: 
                          Name: *?
                      ...to: 
                          Cast of:
                            Name: target

                          to:
                            pointer to instance of type T (not function type) 
                    Name: source
              Expression Statement:
                Applying untyped: 
                    Name: abort
                ...to: 

                  Return Statement, returning: Name: target



