{
  "Definition": {
    "prefix": "definition",
    "description": "Basic purescript definition",
    "body": ["$1 :: $2", "$1 = $3"]
  },
  "SProxy": {
    "prefix": "sproxy",
    "description": "Generate a proxy constant",
    "body": ["_$1 :: Proxy \"$1\"", "_$1 = Proxy"]
  },
  "Proxy": {
    "prefix": "proxy",
    "description": "Generate a proxy constant",
    "body": ["_$1 :: Proxy $1", "_$1 = Proxy"]
  },
  "Prop": {
    "prefix": "prop",
    "description": "Prop lens",
    "body": ["_$1 :: Lens' $2 $3", "_$1 = prop (Proxy :: _ \"$1\")"]
  },
  "Variant constructor": {
    "prefix": "inj",
    "description": "Generate a constructor for a variant an inline sproxy",
    "body": [
      "$1 :: forall r a. a -> Variant ( $1 :: a | r)",
      "$1 = inj (SProxy :: SProxy \"$1\")"
    ]
  },
  "Full variant constructor": {
    "prefix": "injf",
    "description": "Generate a constructor for a variant with an external sproxy definition",
    "body": [
      "$1 :: forall r a. a -> Variant ( $1 :: a | r)",
      "$1 = inj _$1",
      "",
      "_$1 :: Proxy \"$1\"",
      "_$1 = Proxy"
    ]
  },
  "Example code": {
    "prefix": "ex",
    "description": "Provide example usage for some piece of code",
    "body": ["-- |", "-- | Ex:", "-- | ```purs", "-- | $0", "-- | ```"]
  },
  "Section": {
    "prefix": "section",
    "description": "Delimit a section using 10 dashes",
    "body": "---------- $0"
  },
  "Typeclass instances": {
    "prefix": "sinstances",
    "description": "Delimit a section which declares typeclass instances",
    "body": ["---------- Typeclass instances", "$0"]
  },
  "If": {
    "prefix": "if",
    "description": "If then else expression",
    "body": ["if $1", "\tthen $2", "\telse $3"]
  }
}