blisp 0.4.7

A lisp like statically typed programing language for no_std.
Documentation
# Version History

## 0.4.7

- add `macro` to define macros

## 0.4.0

- add `embedded` macro for FFIs
- add transpiler to Coq

## 0.3.9

- fix a bug on the garbage collector

## 0.3.8

- fix a bug on typing
  - check the number of arguments
  - (+ 10) was passed typing rule
- add != and neq
  - (!= 10 10)
  - (neq (Some "Hello") 10)

## 0.3.7

- add bit shift operators
  - (<< 8 4)   ; shift left
  - (>> 128 4) ; shift right
- add Char type
- add character literal
  - \`H\`
- add chars and str functions
  - chars converts String to (List Char)
    - (chars "Hello, World!")
  - str converts (List Char) to String
    - (str '(\`H\` \`e\` \`l\` \`l\` \`o\`))

## 0.3.6

- make <, >, <=, >= functions' type (Pure (-> (t t) Bool))
  - perform comparison between 2 values whose types are same
  - (< "Hello" "World")
  - (>= (Some 5) (Some 19))
- add lt, gt, leq, geq functions
  - perform comparison between any 2 values
  - function type is (Pure (-> (t1 t2) Bool))
  - (eq "Hello" 10)
  - (lt (Some 6) "Hello")

## 0.3.5

- add string type and literal
  - String
  - "Hello World!"
- make equal function generics
  - it can be used for non-integer types
  - (= "Hello" "Hello")
  - (= (Some 1) (Some 2))
- fix a bug on typing
  - (= (Some 1) (Some 2)) could not be typed properly

## 0.3.4

- fix bugs on typing
  - bug 1: some locally defined functions are cannot be called
  - bug 2: empty list cannot be typed properly
- add filter and reverse functions to prelude

## 0.3.3

- add hexadecimal, octal, and binary
  - 0xabcDEF
  - 0o777
  - 0b1010

## 0.3.2

- add pow to compute exponent
  - example: (pow 10 20)
  - type of pow: (Pure (-> (Int Int) (Option Int)))
  - if the exponent portion is greater or equal to 2^32, then return None
- add sqrt
  - example: (sqrt 16)
  - type of sqrt: (Pure (-> (Int) (Option Int)))
  - if the value is less than 0, then return None
- add bitwise operations
  - band, bor, bxor

## 0.3.1

- garbage collection is ready (mark and sweep)