- SCaml is a compiler that takes OCaml code as input and outputs Michelson smart contract code. It is a strict subset of OCaml without many features like recursion, polymorphism, or mutability in order to keep contracts secure and small.
- The compiler reuses OCaml's parser and type checker and compiles the typed AST directly to Michelson. It supports all Michelson opcodes except CREATE_CONTRACT and does some optimizations.
- Being a strict subset of OCaml means programmers can use familiar OCaml patterns and many existing OCaml tools while targeting smart contracts on Tezos. Future work may include pattern matching and user-defined types while keeping the compiler small.