
mixin()
  if true
    foo 6
    foo 7 if true
    foo 8 unless true

body
  foo 1
  foo 2 if true
  foo 3 unless false
  if true
    foo 4
    foo 5
  mixin()

body
  foo 1 if false
  foo 2 unless true
  foo 3

above-5(n)
  true if n > 5

body
  foo above-5(2) == null
  foo above-5(6) == true

below-5(n)
  return true unless n > 5
  false

body
  foo below-5(3) == true
  foo below-5(7) == false

body
  foo 5 unless 5 + 5 == 10

body
  foo 5 if 5 + 5 == 10 and true

mixin()
  foo bar
  foo baz

body
  mixin() if true
  mixin() unless true

body
  mixin test if true


@import 'foo.css' if true
@charset 'foo' if false
@namespace svg "http://www.w3.org/2000/svg" if false

num = 5 unless num is defined

body
  foo num

type(arg = null)
  return string if arg is a 'string'
  return number if arg is a 'unit'
  unknown

body
  foo type('test')
  foo type(12)
  foo type()

is-a-string(arg = null)
  arg is a 'string' unless arg == null

body
  foo is-a-string() == null
  foo is-a-string('test')
  foo is-a-string(12) if true

empty(expr)
  0 == length(expr)

font-list = arial, sans-serif
body
  fonts font-list unless empty(font-list)
  font-list = ()
  fonts font-list unless empty(font-list)

truthy(val)
  yes if 1 == val or 'yes' == val or 'y' == val

body
  foo truthy(1)
  foo truthy('yes')
  foo truthy('y')
  foo truthy(0)
  foo truthy('no')

negative(n)
  return invalid unless n is a 'unit'
  return yes if n < 0
  return no if n > 0
  zero

body
  foo negative(-5)
  foo negative(5)
  foo negative(0)
  foo negative('asdf')
